[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), 그러나 조금 덜 읽기 쉽습니다.


답변


답변

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,:].