[python] 배열에 대한 Numpy 행렬
numpy를 사용하고 있습니다. 1 개의 열과 N 개의 행이있는 행렬이 있고 N 개의 요소로 배열을 가져 오려고합니다.
예를 들어, 내가 있으면 M = matrix([[1], [2], [3], [4]])
을 얻고 싶습니다 A = array([1,2,3,4])
.
그것을 달성하기 위해을 사용 A = np.array(M.T)[0]
합니다. 누구든지 동일한 결과를 얻는 더 우아한 방법을 알고 있습니까?
감사!
답변
좀 더 읽기 쉬운 것을 원한다면 다음과 같이하십시오.
A = np.squeeze(np.asarray(M))
동등하게, 당신은 또한 할 수 있습니다 : A = np.asarray(M).reshape(-1)
, 그러나 조금 덜 읽기 쉽습니다.
답변
result = M.A1
https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.matrix.A1.html
matrix.A1
1-d base array
답변
A, = np.array(M.T)
내가 생각하는 우아함에 의해 당신이 무엇을 의미하는지에 따라 다릅니다.
답변
다음 변형을 시도 할 수 있습니다.
result=np.array(M).flatten()
답변
np.array(M).ravel()
속도를 걱정한다면; 그러나 기억이 걱정된다면 :
np.asarray(M).ravel()
답변
또는 당신은 몇 가지 온도를 피하려고 노력할 수 있습니다.
A = M.view(np.ndarray)
A.shape = -1
답변
먼저 Mv = numpy.asarray(M.T)
4×1이지만 2D 배열을 제공합니다.
그런 다음 수행 A = Mv[0,:]
하면 원하는 것을 얻을 수 있습니다. 당신은 그것들을 같이 넣을 수 있습니다 numpy.asarray(M.T)[0,:]
.