我有如下数据:
a = np.array([[61.22, 92.92, -53.0],
[-0.272, 0.2828, -0.737],
[12.43, -0.732, 0.82],
[52.1, -62.12, 37.78],
[0.1, 0.67, -0.22],
[-0.09, -0.28, 0.22],
[82.1, -11.12, 45.78],
[-52.1, 0.12, -37.78]])
如果数组中的索引1-3包含数字== 0,则我希望将其更改为0。
预期结果如下:
a = np.array([[61.22, 92.92, -53.0],
[0.,0., 0.],
[12.43, -0.732, 0.82],
[52.1, -62.12, 37.78],
[0., 0., 0.],
[0., 0., 0.],
[82.1, -11.12, 45.78],
[-52.1, 0.12, -37.78]])
我尝试使用简单的代码,但它不工作:
for i in range(len(a)):
if a[i].all()==0:
a[i] = np.round(a[i],0)
4条答案
按热度按时间ohfgkhjo1#
实际上,您希望检查数字是否以0开头,即它们的绝对值是否小于1。在这种情况下,您可以用途:
t0ybt7op2#
给你:
您的问题是,您正在检查
if a[i].all()==0:
,但您想要的是行中所有小于1的数字的绝对值。p5cysglq3#
也许你可以这样做:
它检查每个数组及其每个元素。如果数组中每个项的第一个实际数字为零,则将数组的每个元素设置为零。
czq61nw14#
必须将else-0.737舍入为1.0