nx1(n行、1列)の次元を持つNumpy Arrayがあるとします。この私の使い方はnumpyのを使用して3×1行列として3Dベクトルを実装するためのものですが、アプリケーションはNX1ベクトル行列のために拡張することができます。Python Numpy - Numpy配列ではなく数値としてVector Numpy配列の要素を読み取る
In [0]: import numpy as np
In [1]: foo = np.array([ ['a11'], ['a21'], ['a31'], ..., ['an1'] ])
私は一つの値を参照解除することで、配列の値にアクセスできるようにしたいです。
In [2]: foo[0]
Out[2]: 'a11'
In [3]: foo[n]
Out[3]: 'an1'
しかし、numpyのアレイの一般的なフォーマットにより、ベクトル配列は2次元配列であると考えられると間接参照の2つの値を必要とする:私は同じ値を取得するfoo[0][0]
又はfoo[0][n]
を使用しなければなりません。私は1つの行へのベクターのトランスポーズするnp.transpose
を使用することができるが、構文が参照解除に2つの値を必要と2D numpyの配列を生成し続ける。したがって
In [4]: np.transpose(foo)[0] == foo[0][0]
Out[4]: array([ True, False, False], dtype=bool)
In [5]: np.transpose(foo)[0][0] == foo[0][0]
Out[5]: True
これは転置を提供すること任意の利点を無効になります。 1つの参照解除値だけを使用して、ベクトルナンシー配列の要素にアクセスするにはどうすればよいですか?
'foo = np.array(['a11'、 'a21'、 'a31'、...、 'an1'])'と書くことができます。それから 'foo [0]' ''a11''。 Numpyは真の* n *次元配列を持ち、* n *は1になります。 –
また、2-dの場合、 'foo [0,0]'と書くことができます。 –
私はあなたが作った2番目の提案が気に入っていますが、最初のものはベクトル行列の元のフォーマットから取り除き、行列の倍数で使用します。私はMux操作を実行するたびに常に1D配列をトランスポーズすることができますが、そのようなトランスポーズを行う必要はないように思われます。 –