軸が事前にわからない場合、配列値を所定の位置に置き換えるにはどうすればよいですか?
たとえば、私が次のようなことをしたい場合
arr[:,5]
しかし、私は事前に軸を知らないので、私が使用できる一般的なものにしたいですtake
:
arr.take(5, axis=1)
そしてそれはうまくいくでしょう。
しかし、私が何かをしたい場合
arr[:,5]=10
でも事前に軸がわからないのですが、どうすればいいですか?私は明らかにそれを行うことができずarr.take(5, axis=1) = 10
、それを行うための関数を見つけることができません。
(私が見つけた)最も近い関数はですが、それでnp.put()
実行できるとは思いません。
目的の軸を最初の位置に交換してから、割り当てを行うことができます。swapaxes
ビューを返すので、割り当ては必要なことを実行します。
例えば、
In [87]: np.random.seed(123)
In [88]: a = np.random.randint(1, 9, size=(5, 8))
In [89]: a
Out[89]:
array([[7, 6, 7, 3, 5, 3, 7, 2],
[4, 3, 4, 2, 7, 2, 1, 2],
[7, 8, 2, 1, 7, 1, 8, 2],
[4, 7, 6, 5, 1, 1, 5, 2],
[8, 4, 3, 5, 8, 3, 5, 8]])
In [90]: ax = 1
In [91]: k = 5
In [92]: val = 99
In [93]: a.swapaxes(0, ax)[k] = val
In [94]: a
Out[94]:
array([[ 7, 6, 7, 3, 5, 99, 7, 2],
[ 4, 3, 4, 2, 7, 99, 1, 2],
[ 7, 8, 2, 1, 7, 99, 8, 2],
[ 4, 7, 6, 5, 1, 99, 5, 2],
[ 8, 4, 3, 5, 8, 99, 5, 8]])
In [95]: ax = 0
In [96]: k = 2
In [97]: val = -1
In [98]: a.swapaxes(0, ax)[k] = val
In [99]: a
Out[99]:
array([[ 7, 6, 7, 3, 5, 99, 7, 2],
[ 4, 3, 4, 2, 7, 99, 1, 2],
[-1, -1, -1, -1, -1, -1, -1, -1],
[ 4, 7, 6, 5, 1, 99, 5, 2],
[ 8, 4, 3, 5, 8, 99, 5, 8]])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加