Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:包含多个元素的数组的真值不明确。使用while循环使用.any()或.all()_Python_Numpy - Fatal编程技术网

Python ValueError:包含多个元素的数组的真值不明确。使用while循环使用.any()或.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()发挥作用的地方

我有一个数据集合,我想对其应用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()
发挥作用的地方:


任何

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