【发布时间】:2023-03-07 12:45:01
【问题描述】:
如何编写代码,在 a 索引为负值或零值或 -100 或更小的值后立即将多维数组 a 中的每个单独数组的值更改为零对于b 索引。所以a 中的第二个数组没有负值,但b 在第四个索引处有一个-100,所以第四个索引之后的所有内容都将为零。 [45,50,60,30,23.2,232,-44,12,23] 30 以及紧随其后的值将变为零,从而导致输出:[45,50,60,0,0,0,0,0,0]。如果不是所有行都具有相同的长度,那么带有 dtype ="object" 的预期输出就会起作用。我怎样才能获得预期的输出?
import numpy as np
a = np.array([[12,45,50,-600,30,23.2,232,-44,12],
[45,50,60,30,23.2,232,-44,12,23],
[50,60,30,23.2,232,-44,12,34,12],
[60,30,23.2,232,-44,12,120,3,4],
[-300,23.2,232,-44,12,23,23,2,12],
[23.2,-232,-44,12,34,1,2,300.3,5]], dtype='object')
b= np.array([-12.4,-13.4,-44,-100,-6.3,-11,-10,-1.1,-0.3])
#Going through rows
for row,l in enumerate(a):
#inside row iteration
for counter,i in enumerate(l):
if i<0 or b[counter]<=-100:
l[l.index(i):] = [0] * len(l[l.index(i):])
输出:
AttributeError: 'numpy.ndarray' object has no attribute 'index'
预期输出:
[[12,45,50,0,0,0,0,0,0],
[45,50,60,0,0,0,0,0,0],
[50,60,30,0,0,0,0,0,0],
[60,30,23.2,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0],
[23.2,0,0,0,0,0,0,0,0]]
【问题讨论】:
-
这能回答你的问题吗? Formatting Multi dimensional arrays Python
-
您的阵列与昨天的完全不同。哪个是真实案例?二维数组,还是列表数组?从列表中创建一个数组只会让生活变得复杂。
标签: python arrays numpy multidimensional-array indexing