1
이하는 my other question까지 따라 NumPy와 여러 슬라이스 부울
import numpy as np
foo = np.ones(10,10,2)
foo[np.ix_(row_boolean,col_boolean,[1])] += bar[np.ix_(col_boolean)]
바의 후속 인 1 차원 배열과 row_boolean 및 col_boolean는 1D 부울 배열입니다. 나는 1D 바 배열의 특정 숫자를 foo의 해당 열에 적용하고 싶었습니다. 모든 행에 대해 == True는 row_boolean입니다.
내가하려고
위 (boolean_arr이되도록 모든 거짓), 나는 다음과 같은 오류 얻을 :*** ValueError: non-broadcastable output operand with shape (0,0,1) doesn't match the broadcast shape (0,0,0)
가 어떻게 위의 수정합니까를? 비슷한 모양입니다
foo[np.ix_(row_boolean,col_boolean,[1])].shape == (0,0,1)
bar[np.ix_(boolean_arr)].shape == (0,)
감사합니다.
편집 :이 효과에 뭔가, 나는 이유를 설명 할 시간이 없어
In [46]: foo = np.random.random([5,5])
In [47]: foo
Out[47]:
array([[ 0.02736112, 0.71269725, 0.73994453, 0.21814789, 0.19557647],
[ 0.82418806, 0.94340516, 0.51143188, 0.51030109, 0.30127457],
[ 0.6996424 , 0.44577645, 0.24166962, 0.49316502, 0.3283645 ],
[ 0.94403 , 0.64943989, 0.51634012, 0.78914121, 0.73034792],
[ 0.16748087, 0.64182321, 0.50958472, 0.67246253, 0.17233392]])
In [48]: bar = np.array([1,2,3,4,5])
In [49]: col_filter = bar > 2
In [50]: col_filter
Out[50]: array([False, False, True, True, True], dtype=bool)
In [51]: row_filter = foo[:,1] > .5
In [52]: row_filter
Out[52]: array([ True, True, False, True, True], dtype=bool)
In [53]: foo[np.ix_(row_filter,col_filter)]
Out[53]:
array([[ 0.73994453, 0.21814789, 0.19557647],
[ 0.51143188, 0.51030109, 0.30127457],
[ 0.51634012, 0.78914121, 0.73034792],
[ 0.50958472, 0.67246253, 0.17233392]])
In [54]: foo[np.ix_(row_filter,col_filter)] += bar[np.ix_(col_filter)]
In [55]: foo
Out[55]:
array([[ 0.02736112, 0.71269725, 3.73994453, 4.21814789, 5.19557647],
[ 0.82418806, 0.94340516, 3.51143188, 4.51030109, 5.30127457],
[ 0.6996424 , 0.44577645, 0.24166962, 0.49316502, 0.3283645 ],
[ 0.94403 , 0.64943989, 3.51634012, 4.78914121, 5.73034792],
[ 0.16748087, 0.64182321, 3.50958472, 4.67246253, 5.17233392]])
나는 당신이하고 싶은 것을 더 잘 설명 할 필요가 있다고 생각한다.'foo [np.ix_ (row_boolean, col_boolean, [1]) ] + = X''X'는 scaler이거나 shape (1,)이어야합니다. 'bar [np.ix_ (boolean_arr)]'이 shape (3,)을 가질 때 당신은 무엇을 기대합니까? –