web-dev-qa-db-ja.com

行列にキャストせずにNumpyで1次元配列を転置する

私の目標は、行ベクトルを列ベクトルに、またはその逆に変換することです。 _numpy.ndarray.transpose_ のドキュメンテーションは言う:

1次元配列の場合、これは効果がありません。 (列ベクトルと行ベクトルを切り替えるには、最初に1次元配列を行列オブジェクトにキャストします。)

しかし、これを試してみると:

_my_array = np.array([1,2,3])
my_array_T = np.transpose(np.matrix(myArray))
_

マトリックス形式(matrix([[66],[640],[44]]))ではありますが、必要な結果が得られますが、次の警告も表示されます。

PendingDeprecationWarning:行列サブクラスは、行列を表現したり、線形代数を処理したりするための推奨される方法ではありません( https://docs.scipy。 org/doc/numpy/user/numpy-for-matlab-users.html )。通常のndarrayを使用するようにコードを調整してください。

_my_array_T = np.transpose(np.matrix(my_array))
_

ndarrayを適切に転置するにはどうすればよいですか?

7
Ian

IIUC、reshapeを使用

my_array.reshape(my_array.size, -1)
1
rafaelc

配列がmy_arrayそしてそれをあなたができる列ベクトルに変換したい:

my_array.reshape(-1, 1)

使用できる行ベクトルには

my_array.reshape(1, -1)

これらの両方を転置することもでき、期待どおりに機能します。

1
SilverSlash