在Python中检查数组

时间:2019-03-19 08:53:15

标签: python python-3.x numpy jupyter-notebook

我是Python的新手,我想检查我的s_i数组是否包含-1,如果包含它,则应将其乘以8。因此它必须成为-8

但是当我实现我的代码时,我得到的行包含很多零。有人可以告诉我我在做什么错吗?这是我的代码:

import numpy as np
output=np.array([0,0,1,1,0])
s_i=np.array([1-1,1,1,1])
i= 0
while i<4:
  if s_i[i]==-1:
    s_i[i]=s_i[i*8]
  s_i[i]=s_i[i]
  print (s_i[i])

3 个答案:

答案 0 :(得分:3)

您需要:

s_i = np.array([1,-1,1,1,1])

print(np.where(s_i==-1, s_i*8, s_i))

输出:

[ 1 -8  1  1  1] 

答案 1 :(得分:0)

使用:

s_i[s_i == -1] *= 8

结果:

print (s_i)
  

[1 -8 1 1 1]

答案 2 :(得分:0)

您将numpy用作标记,因此使用专门的numpy方法可能是正确的选择。否则,您可以通过使用列表理解(或生成器表达式)来避免比较慢的循环:

data = [1-1,1,1,1]
y = [8*x if x == -1 else x for x in data]
print(y)