首页 > 解决方案 > 将值附加到 numpy 数组时出现问题

问题描述

我在将正确的值附加到 python 数组时遇到问题。我在这里截取了一个代码:

p = np.zeros(8)
h = [2,3,7,4,5,6,1,9]
h = np.array(h)
for i in (0,7):
    if (h[i] >= 5):
        p[i]=1
    else:
        p[i]=3
p

我期望的输出是 [3,3,1,3,1,1,3,1],但由于某种原因,我不断得到 [3., 0., 0., 0., 0., 0 ., 0., 1.]。似乎第一个和最后一个数组值被正确读取和附加,但所有其他元素都没有。我确信这只是一些愚蠢的错误,但我似乎无法找到它。

标签: pythonarraysnumpyif-statement

解决方案


您可以使用numpy.where

np.where(h>5, 1, 3)

输出:

array([3, 3, 1, 3, 3, 1, 3, 1])

推荐阅读