2D 배열 Python의 길이 찾기


83

2D 배열에 몇 개의 행과 열이 있는지 어떻게 알 수 있습니까?

예를 들면

Input = ([[1, 2], [3, 4], [5, 6]])`

3 행 2 열로 표시되어야합니다.


4
목록 목록이 아닌 numpy 배열을 사용해야하는 것처럼 들립니다
wim

답변:


159

이렇게 :

numrows = len(input)    # 3 rows in your example
numcols = len(input[0]) # 2 columns in your example

모든 하위 목록의 길이가 같다고 가정합니다 (즉, 들쭉날쭉 한 배열이 아님).


5
들쭉날쭉 한 배열이 아닌 이상 이상적입니다.
마코토

yo, 2D 배열 def sum1 (input) : sum = 0 for row in range (len (input) -1) : for col in range (len (input [0])-1 ) : sum = sum + input [row] [col] return sum print sum1 ([[1, 2], [3, 4], [5, 6]]) 21 대신 4를 표시합니다 (1 + 2 + 3 + 4 + 5 + 6 = 21). 내 실수는 어디에 있습니까?
Ronaldinho Learn Coding

1
더 간단한 해결책이 있습니다 : sum (sum (x) for x in input)
Óscar López

1
@ LongBodie : 실수는하지 말아야 할 길이에서 1을 빼는 것입니다. Range(n)이미 0,1, ..., n-1을 제공 합니다.
Junuxx

39

사용할 수 있습니다 numpy.shape.

import numpy as np
x = np.array([[1, 2],[3, 4],[5, 6]])

결과:

>>> x
array([[1, 2],
       [3, 4],
       [5, 6]])
>>> np.shape(x)
(3, 2)

튜플의 첫 번째 값은 number rows = 3입니다. 튜플의 두 번째 값은 열 수 = 2입니다.


2
감사합니다.이 일에 numpy를 사용하고 싶지 않았습니다
urgeo

18

또한 총 항목 수를 계산하는 올바른 방법은 다음과 같습니다.

sum(len(x) for x in input)

좋아, 이것이 바로 내가 필요한 것이었다! (some_list에서 x의 LEN (x)의 경우 isinstance (X, 목록) 다른 1) 합계 : 내 경우에는 내가 2 정도 목록까지의 모든 요소를 셀 수
비얀 Magnussen

10

입력 [row] [col] 가정,

    rows = len(input)
    cols = map(len, input)  #list of column lengths

1

np.size (a, 1)을 사용할 수도 있습니다. 여기서 1은 축이며 이것은 열 수를 제공합니다


0

가정 input[row][col]

rows = len(input)
cols = len(list(zip(*input)))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.