다음 코드를 실행하면 오류 메시지가 나타납니다. "에 ValueError : 두 개 이상의 요소를 배열의 진리 값이 모호 a.any() 또는 a.all()를 사용합니다."부울 표현식이 "ValueError : 둘 이상의 요소가있는 배열의 진리 값이 모호합니다 .A.any() 또는 a.all() 사용"
import random
import numpy as np
nx, ny = (32, 32)
xaxis = np.linspace(-310, 310, nx)
yaxis = np.linspace(-310, 310, ny)
xys = np.dstack(np.meshgrid(xaxis, yaxis)).reshape(-1, 2)
oris = random.randint (0, 180)
random_ori=oris
absX = abs(xys[:,0])
absY = abs(xys[:,1])
x_rand=(random.randint (0, 220))
y_rand=(random.randint (0, 220))
width=40
height=80
patch = (x_rand <= absX < x_rand + width) * (y_rand <= absY < y_rand + height)
oris[patch] = random_ori + 30
문제는 부울 식에 의한 것 같다 :
를patch = (x_rand <= absX < x_rand + width) * (y_rand <= absY < y_rand + height)
오류 메시지에서 알 수 있듯이 .any()
및을 사용해 보았습니다.,하지만 같은 오류 메시지가 나타납니다.
numpy 배열로 작업하지 않으므로 np.logical_and
또는 np.logical_or
을 사용할 수 없습니다.
아무도 이유가 무엇인지 알고 있습니까? .any()
및 .all()
이 문제를 해결하지 못하고 해결하기 위해 무엇을 할 수 있습니까?
감사합니다.
@brittUWaterloo 주셔서 감사하지만 출력은 단 하나의 부울 값입니다. 내가 필요한 것은 absX에 대한 참값이고 absY는 조건에 맞는 값이고, 나머지는 false입니다. 결과적으로 모든 1024 요소에 대해 여러 개의 거짓 값과 참 값을 가져야합니다. [나는 여러개의 false/true를 필요로하므로 나중에 패치 기준에 맞는 요소의 방향을 설정할 수 있습니다. –
값을 원한다면 'x> = x_rand 및 x
brittAnderson