【发布时间】:2018-08-06 11:24:06
【问题描述】:
我正在尝试将 1D 数组元素与 2D 数组进行比较,并在不使用 for 循环的情况下以 2D 数组形式返回满足条件的 2D 数组元素。最好使用 numpy 或更快的方法。
a = range(1,10)
Tna = np.random.choice(a, size=[250,10,1000], replace=True)
sum_Ta = np.sum(Tna, axis = 1)
percent = np.percentile(sum_Ta, 5, axis =0)
现在我想得到一个包含 sum_Ta 元素的二维数组,如果元素小于百分比。这样 sum_Ta 的 250 个元素与 percent 的 1 个元素比较 1000 次。最初我可以做到,ES = sum_Ta[sum_Ta < percent[:,None]],但它只给了我一个一维数组,而不是一个二维数组。
【问题讨论】:
-
range(1, 0)返回一个空集,range(0,1)将始终返回 0;你的意思是range(0, 2)?另外,您是否正在寻找作为二维数组掩码的结果?还是匹配元素的列表?
标签: python arrays numpy machine-learning elementwise-operations