我不知道如何扩展二维数组.鉴于下面的数组,其尺寸为8x10,说我需要将其缩放到5x6 - 我在维基百科上寻找了具体的例子,但是在矩阵数学中没有多少基础我有点迷失.如果有人能指出我正确的方向,我真的很感激!
[
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1],
[0, 0, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 0, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 0, 1, 1]
]
Run Code Online (Sandbox Code Playgroud)
Jus*_*eel 10
由于你的数组看起来像是一个小写'a'字母的二进制图像,我猜你的意思是你在图像意义上缩放.
为此,我建议imresize在scipy.misc中使用该函数(我相信它取自PIL).这是一个例子:
import numpy as np
from scipy.misc import imresize
img = np.array([
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 1, 1, 0],
[0, 1, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 1],
[0, 0, 1, 1, 1, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[1, 1, 0, 0, 0, 0, 1, 1],
[1, 1, 0, 0, 0, 1, 1, 1],
[1, 1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 0, 1, 1]
])
newimg = imresize(img, (6,5))
Run Code Online (Sandbox Code Playgroud)
然后是newimg
array([[ 0, 0, 255, 255, 0],
[ 0, 255, 255, 255, 255],
[ 0, 0, 0, 0, 255],
[255, 255, 255, 255, 255],
[255, 255, 0, 0, 255],
[255, 255, 255, 255, 255]], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)
这并不完美,但你可以轻松地将255改为1.此外,如果您获得Scipy的开发版本(当前版本为9),那么您还可以输入一些其他参数(向下滚动到imresize - 无锚点),这些参数可以输入为imresize,例如插值方法和PIL模式.
| 归档时间: |
|
| 查看次数: |
8917 次 |
| 最近记录: |