In [3]: x=np.array([(1,2,3,4,5)])
In [4]: x
Out[4]: array([[1, 2, 3, 4, 5]])
In [5]: x=np.append(x,x[0],1)
...
ValueError: all the input arrays must have same number of dimensions
x
은 (1,5), x[0]
은 (5,) - 하나는 2d이고 다른 하나는 1d입니다. vstack
2 차원하기 위해 x[0]
을 변경하기 때문에
In [11]: x=np.vstack([x,x[0]])
In [12]: x
Out[12]:
array([[1, 2, 3, 4, 5],
[1, 2, 3, 4, 5]])
이, 예를 들어, 작동 (1,5)이므로,이를 x
과 연결할 수 있습니다.
In [16]: x=np.concatenate([x, np.atleast_2d(x[-1,:])])
In [17]: x.shape
Out[17]: (3, 5)
우리는 concatenate
을 사용할 수 있습니다 (또는 추가) 첫번째 내지 2d x[-1,:]
을 확대.
그러나 일반적으로 반복 연결은 배열을 만드는 느린 방법입니다.
목록을 보려면 다음과 같이 반복하십시오. 그러나 어레이에서는 작동하지 않습니다. 하나의 배열에는 append
메서드가 없습니다. np.append
함수는 새 배열을 반환합니다. x
은 변경되지 않습니다.
In [19]: z=[]
In [20]: for i in range(3):
...: z.append(0)
...:
In [21]: z
Out[21]: [0, 0, 0]
목록에 추가 된 내용이 반복됩니다. 배열에 반복적으로 추가하는 것이 느립니다.
In [25]: z=[]
In [26]: for i in range(3):
...: z.append(list(range(i,i+4)))
In [27]: z
Out[27]: [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5]]
In [28]: np.array(z)
Out[28]:
array([[0, 1, 2, 3],
[1, 2, 3, 4],
[2, 3, 4, 5]])
자세한 답변을 제공해 주셔서 감사합니다. 2d 대 매트릭스에서 np.array에 대한 경험이 있는지 묻고 싶습니다. 분명히 파이썬에 익숙하지 않은 나는 미래의 매트릭스 계산을하고 싶습니다. – AnarKi
'np.matrix'는 2 차원으로 제한되는'np.ndarray'의 서브 클래스입니다. 따라서 MATLAB 사용자는 코드를 좀 더 익숙하게 만들 수 있습니다. 당신은 numpy 배열로 모든 매트릭스 계산을 할 수 있습니다 (속도 차이는 없습니다). – hpaulj