これは縦方向のスライスなのでa[:,0]
等と記述します。
https://docs.scipy.org/doc/numpy/user/quickstart.html#indexing-slicing-and-iterating
問題はそのスライスで同様に書いてもうまくいかないこと。
python
1>>> import numpy as np
2>>> a = np.arange(8).reshape(4, 2) # データ生成
3>>> a # 確認
4array([[0, 1],
5 [2, 3],
6 [4, 5],
7 [6, 7]])
8>>> a[:,0], a[:,1] = a[:,1], a[:,0]
9>>> a
10array([[1, 1],
11 [3, 3],
12 [5, 5],
13 [7, 7]])
右辺をコピーするとできます。
python
1>>> a = np.arange(8).reshape(4, 2) # データ生成
2>>> a[:,0], a[:,1] = a[:,1].copy(), a[:,0].copy()
3>>> a
4array([[1, 0],
5 [3, 2],
6 [5, 4],
7 [7, 6]])
しかし、fancy indexを使ってこう書いた方が良いかもしれません。
python
1>>> a = np.arange(8).reshape(4, 2) # データ生成
2>>> a[:,[1,0]]
3array([[1, 0],
4 [3, 2],
5 [5, 4],
6 [7, 6]])
当然再代入が必要になります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/24 02:55