我有下面的Python表達我的代碼以下Python表達式如何工作?
import numpy as np
a = np.array([1,0,1,0])
b = np.array([True,False,False,True])
print a[b],b[a]
輸出我得到這個樣子的:
[1 0] [False True False True]
我無法理解如何生成此輸出。
任何人都可以解釋它。
我有下面的Python表達我的代碼以下Python表達式如何工作?
import numpy as np
a = np.array([1,0,1,0])
b = np.array([True,False,False,True])
print a[b],b[a]
輸出我得到這個樣子的:
[1 0] [False True False True]
我無法理解如何生成此輸出。
任何人都可以解釋它。
他們是兩個差別的情況下
a[b]
是邏輯索引。索引b
必須是布爾數組,相同大小爲a
。每個布爾值b
表示取/離開這個元素a
。即:對於向量中的a_i, b_i
中的每對值a, b
:如果b_i == True
,則向輸出向量添加a_i
,否則忽略它。
b[a]
正在索引多個值。就像在普通的Python中,你可以做b[0]
採取第一個值b
,在numpy中你可以使用一個數組作爲索引,來獲取多個元素。在你的情況下,這產生了相同的結果[b[1], b[0], b[1], b[0]]
感謝您的回答。我得到了第二個案例,但[b]仍然需要一些解釋。我不明白你的陳述的含義:'b的每個布爾值意味着取/離開這個元素'。 –
是的。感謝您的解釋。因爲我是新人,你將不得不等待我爲你的回答已經做出的積極努力。它需要我有更多的聲譽來做到這一點。所以,等等。 Ur贊同我的問題可能會幫助我獲得更多的聲譽。謝謝 :) –
我建議你學習'numpy'的基礎知識。之後,你會找出這個問題的答案。 –