ValueError: Истинное значение массива с более чем одним элементом неоднозначно. Используйте a.any () или a.all () используя цикл while - PullRequest
0 голосов
/ 04 июля 2018

У меня есть набор данных, к которым я хотел бы применить цикл while, но я получил ошибку

ValueError: Значение истинности массива с более чем одним элементом является неоднозначным. Используйте a.any () или a.all ()

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 f <= i+j:
    print(f)
    f = f+1

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Вы пытались использовать это? Решение может быть на выходе на самом деле. Надеюсь, что это работает для вас

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
0 голосов
/ 04 июля 2018

Возможно, некоторые данные в массиве 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...