物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

複数の配列から、特定の配列で条件に合うものを削除したり、値を変えたりする

2つめの配列を条件にして、他の配列も削除したり、他の配列の値も変えたりする。

後者では、変える値は1つめから3つめまで全て同じ値になってしまう。異なる値にする方法はあるのだろうか。

import numpy as np

a1 = np.array([10, 20, -30,  99, 33])
a2 = np.array([14,  4, -22,   0,  2])
a3 = np.array([1,   6,   3, -50, 20])

arr1 = np.array([a1,a2,a3])

print("arr1")
for a in arr1: print(a)

arr2 = arr1[:, arr1[1]>0]
b1, b2, b3 = arr2[0],arr2[1],arr2[2]
print("arr2")
for b in arr2: print(b)

arr3 = np.where(arr1[1]==0,-9999,arr1)
c1, c2, c3 = arr3[0],arr3[1],arr3[2]
print("arr3")
for c in arr3: print(c)

出力

arr1
[ 10  20 -30  99  33]
[ 14   4 -22   0   2]
[  1   6   3 -50  20]
arr2
[10 20 33]
[14  4  2]
[ 1  6 20]
arr3
[   10    20   -30 -9999    33]
[   14     4   -22 -9999     2]
[    1     6     3 -9999    20]