python - (Numpy) bool 数组的索引列表

标签 python arrays numpy

输入:

  1. 数组长度(整数)
  2. 索引(集合或列表)

输出:

一个 bool 型 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.])

关于python - (Numpy) bool 数组的索引列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29982036/

相关文章:

python - 使用 Paramiko SSH 设置 virtualenv

javascript - 使用javascript和django将文本文件上传到服务器中的某个文件夹

python - Pandas:插入偶数年的行

python - 如何用另一个字符串的前两个字符替换字符串的前两个字符?

python - 在 Python 中从数组中获取 1 元素交换的列表

Python 文件加密

javascript - 向现有 javascript 对象添加新属性

python - 如何计算 Scipy 中稀疏矩阵列的方差?

python 查找列中集合的第二次出现

python - 在 Python 中可视化球谐函数