[英]appending numpy array with booleans
有人可以解釋這段代碼在做什么嗎?
a = np.array([[1, 2], [3, 4]])
a[..., [True, False]]
什么是[True, False]
在那里做什么?
省略號和布爾值作為整數
省略號擴展為:x.ndim與選擇元組長度相同的對象所需的對象數量。 可能只存在一個省略號
True
和False
只是模糊0和1 。 以文檔為例:
x = np.array([[[1],[2],[3]], [[4],[5],[6]]])
x[...,0]
# outputs: array([[1, 2, 3],
# [4, 5, 6]])
x[..., False] # same thing
布爾值指定索引,就像數字0或1一樣。
在評論中回答您的問題
這首先看起來很神奇
a = np.array([[1, 2], [3, 4]])
a[..., [True, True]] # = [[2,2],[4,4]]
但是當我們將其視為
a[..., [1,1]] # = [[2,2],[4,4]]
看起來不那么令人印象
同理:
b = array([[1,2,3],[4,5,6]])
b[...,[2,2]] # = [[3,3],[5,5]]
應用省略號規則后; 真假抓取列索引,就像0,1或17一樣
用於復雜索引的布爾數組
有一些微妙的差異(bool的類型不同於整數)。 這里可以找到很多毛茸茸的細節 。 這些似乎沒有代碼中的任何滾動,但它們很有趣,弄清楚numpy索引是如何工作的。
特別是,這一行很可能是你正在尋找的:
將來,布爾數組(例如python bools列表)將始終被視為布爾索引
在這個頁面上,他們討論了布爾數組 ,它作為索引工具非常復雜
用作索引的布爾數組的處理方式與索引數組完全不同。 布爾數組的形狀必須與要索引的數組的初始尺寸相同
省略一點
與整數索引數組的情況不同,在布爾情況下,結果是一個一維數組,其中包含索引數組中與布爾數組中所有真實元素對應的所有元素。 索引數組中的元素始終是迭代的,並以行主(C樣式)順序返回。 結果也與y [np.nonzero(b)]相同。 與索引數組一樣,返回的是數據的副本,而不是切片所獲得的視圖。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.