我想要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' object没有属性'data'
我该写什么?
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]])
或者如果你想迭代创建一个数组,从lists
开始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]])