【发布时间】:2014-10-28 13:40:23
【问题描述】:
在给定范围的情况下,是否可以将索引数组转换为 1 和 0 数组? 即 [2,3] -> [0, 0, 1, 1, 0],范围为 5
我正在尝试自动化这样的事情:
>>> index_array = np.arange(200,300)
array([200, 201, ... , 299])
>>> mask_array = ??? # some function of index_array and 500
array([0, 0, 0, ..., 1, 1, 1, ... , 0, 0, 0])
>>> train(data[mask_array]) # trains with 200~299
>>> predict(data[~mask_array]) # predicts with 0~199, 300~499
【问题讨论】:
-
scipy 有一个掩码数组模块。它与问题有关。 docs.scipy.org/doc/numpy/reference/maskedarray.html
-
[x in index_array for x in range(500)]可以做到这一点,但使用True和False而不是 1 和 0。 -
@genisage 您能否发表评论作为答案?我想选择你的。这正是我一直在寻找的东西。谢谢你的回答!
-
numpy.array([boolean_value in indices for x in range(length)], dtype=np.int8)将适用于一维数组 -
不确定,如果直接与上面提出的问题一致,但您是否探索过 numpy masked_array docs.scipy.org/doc/numpy-1.13.0/reference/generated/… 以防它有助于进一步探索
标签: python arrays numpy where mask