numpy 在Python中列出小于容差的元素

kupeojn6  于 2023-02-19  发布在  Python
关注(0)|答案(1)|浏览(151)

我有一个包含numpy数组的列表Test。我想看看每个数组元素是否小于tol的值。如果小于,它应该返回空列表。但是我得到了一个错误。我给出了预期的输出。

import numpy as np
tol=1e-12
Test=[[np.array([9.75016872e-15])], [np.array([9.75016872e-15]), np.array([0.00019793]), np.array([0.0001007])]]

for i in range(0,len(Test)):
    for j in range(0,len(Test[i])): 
        if (Test[j][i]<tol): 
            Test[j][i]=[] 
        else: 
            Test=Test[j][i]
print(Test)

错误是

in <module>
    if (CB[j][i]<tol):

IndexError: list index out of range

预期输出为

[[[]], [[], array([0.00019793]), array([0.0001007])]]
bq3bfh9z

bq3bfh9z1#

那么列表理解呢?

out = [[[] if (a<tol).all() else a for a in l] for l in Test]

# [[[]], [[], array([0.00019793]), array([0.0001007])]]

修复您的代码:

for i in range(len(Test)):
    for j in range(len(Test[i])): 
        if Test[i][j] < tol:
            Test[i][j] = []

相关问题