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]