numpy Python未正确创建数组

tzcvj98z  于 2023-08-05  发布在  Python
关注(0)|答案(2)|浏览(120)

我有一个这样的数组:

A=[[0,1,2,3],[4,5,6,7,8],[9,10,11]]

字符串
在我的代码中,我遍历数组中的每个数组,并取两个对我重要的值,如:

arr=[A[j][i-1],A[j][i]]


我第一次在for循环中做的时候,它工作得很好,但是我再次做了一次,以获取我想要的另一个值,我得到了这个输出:

arr2=[array[A[j][i-1]],array[A[j][i]]]


所以第二次它将每个元素保存为自己的数组。疯狂的事情是它只会发生第二次。我试着把它放在一个工作,但仍然没有什么,我不认为这是一个错误,因为我复制了完全相同的代码,只是改变了变量名。
有人知道为什么吗?谢啦,谢啦
示例如下:

FP3=[array([ 0.   ,  4.44 ,  9.517, 19.054, 38.525, 71.371, 84.197, 83.273,
        66.427, 62.726, 54.323, 42.741, 26.953, 15.468, 15.468]),
 array([ 0.      , 46.576483, 78.993133, 91.855251, 97.226361, 95.55402 ,
        95.152298, 94.595104, 94.26279 , 89.147579, 89.171261, 83.769474,
        69.903644, 46.475055])]
for j in range(len(FP3)):
    i=0
    while FP3[j][i]<0.6*max(FP3[j]):
        i=i+1
    XD=[DP3[j][i-1],DP3[j][i]]
    YF=[FP3[j][i-1],FP3[j][i]]
    max_value = max(FP3[j])
    indices = np.where(FP3[j] == max_value)[0]
    i=indices
    while FP3[j][i]>0.85*max(FP3[j]):
        i=i+1
    XD=[DP3[j][i-1],DP3[j][i]]
    YF=[FP3[j][i-1],FP3[j][i]]
    Dc=np.interp(0.85*max(FP3[j]), YF, XD)
    Cp1[j] = Dc
    Cp2[j] = 0.85*max_value

aamkag61

aamkag611#

这是因为索引“indices”是一个数组dtype 64开始,所以在循环中它会弄乱值。谢谢你的帮忙。

e5nqia27

e5nqia272#

要解决此问题,请确保在存储值时使用正确的变量名arr 2。
arr2 = [arr[A[j][i-1]],arr[A[j][i]
请确保在整个代码中使用正确的变量名,以避免此类问题。

相关问题