我想要2x2数组,我想添加元素。我用numpy。我究竟做错了什么?? 例如:
for i in range(len(pin)):
for k in range(len(pin)):
sumv = 0
for j in range(len(pin[i])):
sumv = sumv + ...
c = np.data(sumv).reshape(len(pin),len(pin))
print c
输出:
AttributeError:' module'对象没有属性'数据'
我应该写什么?
答案 0 :(得分:1)
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
ndarray.data
包含数组实际元素的缓冲区。通常,我们不需要使用此属性,因为我们将使用索引工具访问数组中的元素。
您的quickstart
描述了ndarray
对象的属性,即数组。但np
是numpy
模块。 a=np.array(....)
创建一个ndarray
对象。其.shape
和.dtype
是重要的属性。 .data
是您应该了解的内容,但很少直接引用。
从numpy开始的最好方法是创建一个类似的数组:
In [592]: a = np.array([[1,2],[3,4]])
In [593]: a
Out[593]:
array([[1, 2],
[3, 4]])
可以被操纵,如:
In [594]: a[1,:]
Out[594]: array([3, 4])
In [595]: a[0,1]
Out[595]: 2
In [596]: np.concatenate((a,a), axis=0)
Out[596]:
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
In [597]: np.concatenate((a,a), axis=1)
Out[597]:
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
或者如果你想迭代地创建一个数组,请从列表
开始In [598]: alist = []
In [599]: for i in range(2):
...: sublist = []
...: for j in range(2):
...: sublist.append(i+j)
...: alist.append(sublist)
In [600]: alist
Out[600]: [[0, 1], [1, 2]]
In [601]: a=np.array(alist)
In [602]: a
Out[602]:
array([[0, 1],
[1, 2]])