说我有一系列数字:
a1 = np.arange(1,(30)+1)[:,None] # or some other way og making (n,1) array
我希望每隔4个人拿出一个其他名字,我会这样做:
a2 = aaa[0:30:2]
多数民众赞成,但除了上面的那些数字之外我该如何取出所有数字?换句话说:
[[2.]
[3.]
[5.]
[6.]
[8.]
[9.]....
我不知道该怎么做!
答案 0 :(得分:1)
创建一个布尔掩码并将其应用于您的数组:
>>> a2 = np.ones_like(a1)
>>> a2[::3] = 0
>>> a1[a2.astype(bool)]
array([ 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21, 23, 24, 26,
27, 29, 30])
如果要提取其他元素,只需应用反布义掩码:
>>> a1[~a2.astype(bool)]
array([ 1, 4, 7, 10, 13, 16, 19, 22, 25, 28])