我有以下代码
row, col = image.shape
print image
for x in range(row):
for y in range(col):
image = np.insert(image, [x,y], values=0, axis=1)
print image
运行代码时出现此错误,
Traceback (most recent call last):
File "C:\...\Code.py", line 55, in <module>
expand(img1)
File "C:\...\Code.py", line 36, in expand
image = np.insert(image, [x,y], values=0, axis=1)
File "C:\Python27\lib\site-packages\numpy\lib\function_base.py", line 3627, in insert
new[slobj2] = arr
ValueError: array is not broadcastable to correct shape
我希望函数执行的操作是给定大小为i,j的数组,它在每一行和每一列之间插入零的行和列。
所以如果我有
`array([[1,2,3],
[4,5,6],
[7,8,9]])`
该函数将返回的结果
[1,0,2,0,3,0]
[0,0,0,0,0,0]
[4,0,5,0,6,0]
[0,0,0,0,0,0]
[7,0,8,0,9,0]
[0,0,0,0,0,0]
我也尝试过
row, col = image.shape
for x in range(row):
image = np.insert(image, x, values=0, axis=1)
for y in range(col):
image = np.insert(image, y, values=0, axis=1)
但是我没有得到想要的结果。
最佳答案
避免使用insert
和其他逐渐改变数组形状的函数-这些类型的函数在NumPy中通常非常慢。而是预分配并填充:
newimage = np.zeros((row*2, col*2))
newimage[::2,::2] = image
关于python - 在Numpy中插入行和列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28614239/