Python:如何使用NumPy创建2x2数组?

时间:2016-11-07 21:22:44

标签: python arrays numpy

我想要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'对象没有属性'数据'

我应该写什么?

1 个答案:

答案 0 :(得分:1)

https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

  

ndarray.data

     

包含数组实际元素的缓冲区。通常,我们不需要使用此属性,因为我们将使用索引工具访问数组中的元素。

您的quickstart描述了ndarray对象的属性,即数组。但npnumpy模块。 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]])