좋은 방법이 있을 수 있는 벡터 사이의 구분 행과 열의 파이썬? 지금까지 내가 지금까지 지켜보리니 I& # 39 m, 누마피 및 스키피 사용하여 한 벡터, 말하도다 전달자로써 에로남이네 If I 는
from numpy import *
Vector = array([1,2,3])
array([1,2,3]) == array([1,2,3]).transpose()
True
즉, 실제 world" ". 단지 예정이었습니다. 저도 잘 압니다 대부분의 기능을 설명하는 모듈에서는 # 39 에서, 벡터 don& 차별화를 필요한 건 아니다. 예를 들어 '외부 (a, b)' 또는 ',' d like to # 39 의 차별화합니다 I& 앨도 (b) 하지만 내 자신의 편의를 돕는다.
다른 치수처리 스토리지와의 추가하기만 명시성 차이를 만들 수 있습니다.
>>> a = np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> a.transpose()
array([1, 2, 3])
>>> a.dot(a.transpose())
14
이제 열 수 있도록 인력용 벡터입니다:
>>> a.shape = (3,1)
>>> a
array([[1],
[2],
[3]])
>>> a.transpose()
array([[1, 2, 3]])
>>> a.dot(a.transpose())
array([[1, 2, 3],
[2, 4, 6],
[3, 6, 9]])
또 다른 옵션은 np.뉴라시스 사용할 수 있도록 할 경우 차이를:
>>> a = np.array([1, 2, 3])
>>> a
array([1, 2, 3])
>>> a[:, np.newaxis]
array([[1],
[2],
[3]])
>>> a[np.newaxis, :]
array([[1, 2, 3]])
'는' 1 '-' 마이베스트너딩 치수들을 수를 체크
이겨낼 수 있는 두 가지 방법
행 또는 열 명시적으로 만들 수 있습니다.
row = np.array([ # one row with 3 elements
[1, 2, 3]
]
column = np.array([ # 3 rows, with 1 element each
[1],
[2],
[3]
])
또는, 수신기마다 짧은보기
row = np.r_['r', [1,2,3]] # shape: (1, 3)
column = np.r_['c', [1,2,3]] # shape: (3,1)
이를 위해 '구도가 깨질 수도 있습니다 (1, n)' 또는 '행 (n, 1)' 를 열
row = my_vector.reshape(1, -1)
column = my_vector.reshape(-1, 1)
여기서 '-' 의 값을 자동으로 aspt 'n'.
이 경우 스케쳐내 구 별 '매트릭스' 는 꼭 이래야겠어요 추천합니까 대신 사용할 수 있는.
matrix([1,2,3]) == matrix([1,2,3]).transpose()
보기입니다:
matrix([[ True, False, False],
[False, True, False],
[False, False, True]], dtype=bool)
'' 두 번째 치수를 추가에는 노다레이 명시적으로 사용할 수도 있습니다.
array([1,2,3])[None,:]
#array([[1, 2, 3]])
및:
array([1,2,3])[:,None]
#array([[1],
# [2],
# [3]])
만약 내가 원하는 건 1x3 어레이로써, 또는 3x1 어레이입니다:
import numpy as np
row_arr = np.array([1,2,3]).reshape((1,3))
col_arr = np.array([1,2,3]).reshape((3,1)))
Check your work:
row_arr.shape #returns (1,3)
col_arr.shape #returns (3,1)
내가 찾은 답은 많이 있지만, 너무 복잡한 가져다줄래요 도움됐네 다음과 같습니다. 실제로 I come back to '형태' 와 '변형' 와 코드를 읽을 수 있다. 매우 단순하고 명시성.
마치 Python& # 39, s, t 구분할 누마피 doesn& # 39 에서 이를 사용하지 않으면 컨텍스트로:
표준 또는 행 / 열 벡터의 벡터를 그렇게 말씀하시다면야 " 할 수 있습니다. ".
". ) 행 또는 열 중 하나로 랭크 1 어레이에는 벡터를 처리할 수 있습니다. joyon. (A, v) 은 벡터 v, v 로 치료하는 동안 열로 joyon. (v, A) 행 벡터. 이 때문에 많은 전치 문자 절감할 수 있습니다. ".
또한 고유의 코드: 전치행렬 대한 " 랭크 1 어레이입니다 아무말도요 않습니다. ". 출처: http://wiki.scipy.org/NumPy_for_Matlab_Users
T * 누마피 사용하여 계산할 때, w ^ x '찾았다' 슈퍼 혼란을 전송되었기 가져다줄래요 잘 알려져 있다. 사실 나는 t # 39 couldn& 구현하십시오 말야. 그래서, 이 중 몇 정보 누마피 에서 유능한 함께 해야 한다는 집하여 우리.
멀리는 1D 어레이입니다 행 벡터 및 열 벡터입니다 우려하고 있으며, 이 차이는 없습니다. 이들은 정확히 동일한.
다음 예를 보면, 우리가 동일한 결과를 얻을 수 있는 모든 경우에, 이는 사실과 다른 ( 이론적인 것은 ) 의 선형 대수.
In [37]: w
Out[37]: array([0, 1, 2, 3, 4])
In [38]: x
Out[38]: array([1, 2, 3, 4, 5])
In [39]: np.dot(w, x)
Out[39]: 40
In [40]: np.dot(w.transpose(), x)
Out[40]: 40
In [41]: np.dot(w.transpose(), x.transpose())
Out[41]: 40
In [42]: np.dot(w, x.transpose())
Out[42]: 40
이를 위해 우리가 할 수 있는 'w' 변형하려면 2D 어레이입니다.
In [51]: wt = w[:, np.newaxis]
In [52]: wt
Out[52]:
array([[0],
[1],
[2],
[3],
[4]])
지금 # 39 의 제곱 연산 let& 벡터의 길이 (또는 제곱 등급) 의 'w':
In [53]: np.dot(w, wt)
Out[53]: array([30])
단, wt, wt 칼리오피 우린 'w', '' 대신 '' 'w' (주로 이론적 linear algebra) 로 인해 불일치입니다 형태를 사용하여 np.도 (wt, w). 그래서, 우리는 벡터의 제곱 길이 있다 ' [30]'. 어쩌면 이것은 구별하는 방법 중 하나는 (numpy& # 39 의 해석은) 행과 열의 벡터입니다?
마지막으로, 내가 있는 'w ^ x' T * 생각했어요 아웃해야 언급하십시오 구축하는 방법은? Yes, I did.
In [58]: wt
Out[58]:
array([[0],
[1],
[2],
[3],
[4]])
In [59]: x
Out[59]: array([1, 2, 3, 4, 5])
In [60]: np.dot(x, wt)
Out[60]: array([40])
따라서 누마피, the order of the 피연산자로 달리 우리가 알 수 있듯이, 위의 선형 대수학 공부를 이론적 없다.
뛰어난 [판다] (http://pandas.pydata.org/) 에 새로운 기능을 추가한 라이브러리란 누마피 이런 종류의 작업을 수행할 수 있도록 더 효과적으로 작용하게 된다. 예를 들면 다음과 같습니다.
import numpy as np
import pandas as pd
# column
df = pd.DataFrame([1,2,3])
# row
df2 = pd.DataFrame([[1,2,3]])
[정의하시려면 다테프라임 만들어 스프레드 시트와 같은 피벗 테이블] 수도 있습니다 (http://pandas.pydata.org/pandas-docs/stable/reshaping.html # 변형 피벗).