我有一个包含负数和正数元素的数组。一个简化的例子是一个名为
这听起来像是一个已经在某个地方被解决的主题,可能已经存在一个重复的答案,但我找不到。
一种方法是在整个数组上循环使用
a
的数组,看起来像这样: array([-3, -2, -1, 1, 2, 3, 4, 5, 6, -5, -4])
。
(a<0).sum()
和 (a>0).sum()
可以给我负数和正数元素的总数,但是如何按顺序计算它们?我的意思是,我想知道我的数组中包含前3个负元素,6个正元素和2个负元素。这听起来像是一个已经在某个地方被解决的主题,可能已经存在一个重复的答案,但我找不到。
一种方法是在整个数组上循环使用
numpy.roll(a,1)
,并计算出现在具有给定符号的元素数,例如在它滚动时第一个元素中的数,但对我来说,它看起来既不太numpyic(或pythonic),也不是很高效。
array([3,6,2])
(我可以轻易地知道输入数组的第一个元素的符号,因此知道输出数组的第一个元素对应的符号)。 - calocedrus