Solange es sich nicht um ein gezacktes Array handelt, ist dies ideal.
Makoto
yo, ich möchte die Summe aller Elemente in diesem 2D-Array def sum1 (Eingabe) finden: sum = 0 für Zeile im Bereich (len (Eingabe) -1): für Spalte im Bereich (len (Eingabe [0]) - 1 ): sum = sum + input [row] [col] return sum print sum1 ([[1, 2], [3, 4], [5, 6]]) Es werden 4 statt 21 (1 + 2 + 3) angezeigt + 4 + 5 + 6 = 21). Wo ist mein Fehler?
Ronaldinho Learn Coding
1
Es gibt eine einfachere Lösung: Summe (Summe (x) für x in Eingabe)
Óscar López
1
@ LongBodie: Der Fehler ist, dass Sie 1 von den Längen subtrahieren, wo Sie nicht sollten. Range(n)gibt schon 0,1, ..., n-1 .
Junuxx
39
Sie können verwenden numpy.shape.
import numpy as np
x = np.array([[1, 2],[3, 4],[5, 6]])
Großartig, das war genau das, was ich brauchte! In meinem Fall kann ich alle Elemente einer Liste bis zum 2. Grad zählen: Summe (len (x) wenn isinstance (x, Liste) sonst 1 für x in some_list)
Antworten:
So was:
numrows = len(input) # 3 rows in your example numcols = len(input[0]) # 2 columns in your example
Angenommen, alle Unterlisten haben die gleiche Länge (das heißt, es ist kein gezacktes Array).
quelle
Range(n)
gibt schon 0,1, ..., n-1 .Sie können verwenden
numpy.shape
.import numpy as np x = np.array([[1, 2],[3, 4],[5, 6]])
Ergebnis:
>>> x array([[1, 2], [3, 4], [5, 6]]) >>> np.shape(x) (3, 2)
Der erste Wert im Tupel ist Anzahl Zeilen = 3; Der zweite Wert im Tupel ist die Anzahl der Spalten = 2.
quelle
Darüber hinaus wäre die korrekte Methode zum Zählen der gesamten Artikelnummer:
sum(len(x) for x in input)
quelle
Angenommen, Eingabe [Zeile] [Spalte],
rows = len(input) cols = map(len, input) #list of column lengths
quelle
Sie können auch np.size (a, 1) verwenden. 1 ist hier die Achse und gibt Ihnen die Anzahl der Spalten
quelle
unter der Annahme
input[row][col]
quelle