Skip to main content
 首页 » 编程设计

python之在python中更改数组的某些索引的值

2025年05月04日12小虾米

我正在尝试这个简单的代码来搜索数组并将大于 1 的元素替换为 1:

import numpy as np 
 
j = np.array([[1],[3],[1],[0],[9]]) 
 
for x in j: 
    if abs(x) > 1 : 
        j[x] = 1 

但是我得到这样的错误:

IndexError: index 9 is out of bounds for axis 0 with size 5

请您参考如下方法:

如果你所做的只是在 absolute(j[i]) 大于 1 到 1 时生成所有值,那么 numpy 内置了这个功能,它非常简单,可以在一行并且比任何 python 循环都更有效:

j[np.absolute(j) > 1] = 1 

向您展示这是如何工作的:

#made 3 a negitive value to prove absolute works. 
j = np.array([[1],[-3],[1],[0],[9]]) 
 
j[np.absolute(j) > 1] = 1 

j 现在是:

[[1] 
 [1] 
 [1] 
 [0] 
 [1]]