我有一个数组的形状[10,200,50]。我想替换以下所有值:1.大于331.落在第三轴上的一组指数内:索引=[0,1,15,20,19]因此,在轴3上具有任何这些索引并且大于33的任何值将被数字22替换。我知道这很琐碎,但我在搜索正确的术语来找到解决方案时遇到了麻烦。我的直觉是:arr[arr[:,:,indices]==33]]=22,但这不起作用,因为内部数组的形状与外部数组的形状不匹配。
xzv2uavs1#
您可以创建一个遮罩,并在满足条件时设置为true。
import numpy as np data = np.random.randn(10, 200, 50) threshold = 33 new_value = 34 indices = [0,1,15,20,19] data[0, 0, 0] = 100 mask = np.zeros(data.shape, dtype=bool) mask[:, :, indices] = data[:, :, indices] > threshold data[mask] = new_value print(data[0, 0 ,0])
1条答案
按热度按时间xzv2uavs1#
您可以创建一个遮罩,并在满足条件时设置为true。