파이썬에서 다차원 배열에서 열을 추출하는 방법을 아는 사람이 있습니까?
답변
>>> import numpy as np
>>> A = np.array([[1,2,3,4],[5,6,7,8]])
>>> A
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
>>> A[:,2] # returns the third columm
array([3, 7])
“numpy.arange”및 “reshape”도 참조하여 메모리를 할당하십시오
예 : (매트릭스 (3×4)의 형태로 배열 할당)
nrows = 3
ncols = 4
my_array = numpy.arange(nrows*ncols, dtype='double')
my_array = my_array.reshape(nrows, ncols)
답변
NumPy 배열을 사용하고 있습니까? 파이썬에는 배열 모듈이 있지만 다차원 배열을 지원하지 않습니다. 일반적인 파이썬리스트도 1 차원입니다.
그러나 다음과 같은 간단한 2 차원 목록이있는 경우 :
A = [[1,2,3,4],
[5,6,7,8]]
다음과 같이 열을 추출 할 수 있습니다.
def column(matrix, i):
return [row[i] for row in matrix]
두 번째 열 추출 (인덱스 1) :
>>> column(A, 1)
[2, 6]
또는 간단하게 :
>>> [row[1] for row in A]
[2, 6]
답변
당신이 같은 배열을 가지고 있다면
a = [[1, 2], [2, 3], [3, 4]]
그런 다음 첫 번째 열을 다음과 같이 추출하십시오.
[row[0] for row in a]
결과는 다음과 같습니다.
[1, 2, 3]
답변
확인 해봐!
a = [[1, 2], [2, 3], [3, 4]]
a2 = zip(*a)
a2[0]
그것은 zip이 작업을 수행하는 것이 더 깔끔하지만 인수로 단일 배열을 필요로한다는 것을 제외하고는 위와 동일합니다. * a 구문은 다차원 배열을 단일 배열 인수로 압축 해제합니다
답변
def get_col(arr, col):
return map(lambda x : x[col], arr)
a = [[1,2,3,4], [5,6,7,8], [9,10,11,12],[13,14,15,16]]
print get_col(a, 3)
파이썬에서 map 함수는 또 다른 방법입니다.
답변
>>> x = arange(20).reshape(4,5)
>>> x array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14],
[15, 16, 17, 18, 19]])
두 번째 열을 원한다면 사용할 수 있습니다
>>> x[:, 1]
array([ 1, 6, 11, 16])
답변
[matrix[i][column] for i in range(len(matrix))]
