2016-11-07 4 views
-3

Мне нужен массив 2x2, который я хочу добавить. Я использую numpy. Что я делаю не так?? Например:Python: Как создать массив 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 has no attribute 'data'

Что я должен написать?

+0

Откуда у вас возникла идея, что 'np.data' будет полезен? Похоже, что вы пропустили базовую документацию по количеству. – hpaulj

+0

Согласно https://docs.scipy.org/doc/numpy-dev/user/quickstart.html – Eleftheria

+0

Я положил это. Вы должны предложить что-то еще? Как я могу это сделать? – Eleftheria

ответ

1

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

ndarray.data

the buffer containing the actual elements of the array. Normally, we won’t need to use this attribute because we will access the elements in an array using indexing facilities.

Ваш 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]]) 
Смежные вопросы