本教程中的练习说:
生成一个 10 x 3 的随机数数组(在 范围内
[0,1]
)。对于每一行,选择最接近 的数字0.5
。使用
abs
和argsort
查找j
每行最接近的列。使用花哨的索引来提取数字。(提示:
a[i,j]
– 数组i
必须包含与 中的内容相对应的行号j
。)
所以我做了一切,但我觉得我使用的切片方法(以及 的初始化b
)根本不是 pythonic:
a = np.random.rand(10,3)
mask = np.argmin(abs(a-0.5), axis = 1)
b = np.ones(mask.size)
for j in range(0,mask.size):
b[j] = a[j,mask[j]]
for
不使用循环的另一种方法是什么?