有一个2维数组,我希望克隆n *次每个项目。 这就像在两个维度上放大图像n次一样。 这是我的代码:
def elargir(a,n) :
imag=[a.shape[0]*n,a.shape[1]*n] # Array with the wanted shape
for i in range(a.shape[0]):
for j in range(a.shape[1]*n): # loops on lines and columns of a
imag[i][j]=a[i//5][j//n]
return imag
我创建了一个数组
a=np.array([[1,2],[3,4]])
并在其上应用功能
elargir (a,5)
这是错误
Traceback (most recent call last):
File "<ipython-input-14-508f439a1888>", line 1, in <module>
elargir (a,5)
File "<ipython-input-12-b2382eb5b301>", line 5, in elargir
imag[i][j]=a[i//5][j//n]
TypeError: 'int' object does not support item assignment
感谢您的帮助
答案 0 :(得分:0)
imag
是一维数组。在for i in range(a.shape[0]):
中,您将首先访问该数组的第一项,int
,您将进一步尝试按j
进行索引。示例中的数组与第一个代码块中的数组不匹配。
import numpy as np
a = np.arange(9).reshape(3, 3)
n = 3
imag=[a.shape[0]*n,a.shape[1]*n]
print(imag[0]) # The `i` index in your nested for loop