[英](Numpy) Index list to boolean array
输入:
输出:
一个布尔 numpy 数组,其索引值为 1,其他索引值为 0。
例子:
输入: array_length=10, indexes={2,5,6}
输出:
[0,0,1,0,0,1,1,0,0,0]
这是我的一个简单实现:
def indexes2booleanvec(size, indexes):
v = numpy.zeros(size)
for index in indexes:
v[index] = 1.0
return v
有没有更优雅的方法来实现这个?
一种方法是避免循环
In [7]: fill = np.zeros(array_length) # array_length = 10
In [8]: fill[indexes] = 1 # indexes = [2,5,6]
In [9]: fill
Out[9]: array([ 0., 0., 1., 0., 0., 1., 1., 0., 0., 0.])
另一种方法(在一行中):
np.isin(np.arange(array_length), indexes)
然而,这比 Zero 的解决方案慢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.