Python ValueError:包含多个元素的数组的真值不明确。使用while循环使用.any()或.all()
我有一个数据集合,我想对其应用while循环,但我得到了一个错误 ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all()Python ValueError:包含多个元素的数组的真值不明确。使用while循环使用.any()或.all(),python,numpy,Python,Numpy,我有一个数据集合,我想对其应用while循环,但我得到了一个错误 ValueError:包含多个元素的数组的真值不明确。使用a.any()或a.all() 将numpy导入为np data=np.loadtxt('data4.txt') i=np.array(data[:,1])#具有千个值的列 j=7/2 f=i-j 当f时,f数组中的一些数据计算为True小于或等于i和j的笛卡尔和,而f数组中的一些数据计算为False 那么,你选择哪一个作为真实性?这就是any()和all()发挥作用的地方
将numpy导入为np
data=np.loadtxt('data4.txt')
i=np.array(data[:,1])#具有千个值的列
j=7/2
f=i-j
当f时,f
数组中的一些数据计算为True
小于或等于i
和j
的笛卡尔和,而f
数组中的一些数据计算为False
那么,你选择哪一个作为真实性?这就是any()
和all()
发挥作用的地方:
任何
condition = i + j
while not (f - condition).any(): # If any elements of f are not greater than i + j
...
condition = i + j
全部
condition = i + j
while not (f - condition).all(): # If not all of the elements of f are greater than i + j
...
condition = i + j
你试过用这个吗?解决方案实际上可能在输出中。希望这对你有用
import numpy as np
data = np.loadtxt('data4.txt')
i=np.array(data[:,1]) #column having thousand values
j=7/2
f = i-j
while np.all(f <= i+j):
print(f)
f += 1
将numpy导入为np
data=np.loadtxt('data4.txt')
i=np.array(data[:,1])#具有千个值的列
j=7/2
f=i-j
而np.all(f)你有没有试过在谷歌上搜索这个错误?不清楚你想做什么,但这相当于说如果你能澄清错误是在哪一行抛出的吗?在这一行“while f@roganjosh:我在尝试“I-j,(I-j)+1,(I-j)+2….,I+j”的范围“其中j是常数,而‘i’有不同的值。在这里,你是否以i+j
结尾?可能是(i-j)+2j
?但无论如何,您仍在将其应用于数组,因此我不清楚您的意图。当该数组中的一个值超过阈值时,它是否应该停止,或者当所有值都超过阈值时停止?我们看不到您的输入数据。吹毛求疵,但是f+=1
可能会更快,因为它可以在数组上正常工作。而且有些事情告诉我,这可能是错误的如果没有while
循环,解决起来就容易多了,但这是另一回事,因为OP没有解释他们试图做什么:)解决了您的输入。我也同意应该有一个更快的方法,但这一次的输出信息非常重要哦,是的,我不否认错误是明确的,你的答案解决了这个问题,对不起。
import numpy as np
data = np.loadtxt('data4.txt')
i=np.array(data[:,1]) #column having thousand values
j=7/2
f = i-j
while np.all(f <= i+j):
print(f)
f += 1