2016-11-07 1 views
-3

Ich möchte 2x2 Array, die ich Elemente hinzufügen möchte. Ich benutze numpy. Was mache ich falsch?? Zum Beispiel:Python: Wie erstelle ich 2x2 Array mit 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 

Ausgang:

AttributeError: 'module' object has no attribute 'data'

Was soll ich schreiben?

+0

Woher kam die Idee, dass 'np.data' nützlich wäre? Klingt so, als ob du die grundlegende Dokumentation übersprungen hast. – hpaulj

+0

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

+0

habe ich dies gestellt. Müssen Sie etwas anderes vorschlagen? Wie kann ich das machen? – Eleftheria

Antwort

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.

Ihre quickstart beschreibt Attribute eines ndarray Objekt, das heißt, ein Array. Aber np ist das numpy Modul. a=np.array(....) erstellt ein Objekt ndarray. Seine .shape und .dtype sind wichtige Attribute. .data ist etwas, über das Sie Bescheid wissen sollten, aber selten direkt referenzieren.

Der beste Weg, mit numpy zu starten ist ein Array wie zu machen:

In [592]: a = np.array([[1,2],[3,4]]) 
In [593]: a 
Out[593]: 
array([[1, 2], 
     [3, 4]]) 

die wie manipuliert werden kann:

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]]) 

Oder wenn Sie ein Array iterativ machen wollen, beginnen Sie mit Listen

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]])