第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 NumPy 中使用兩個布爾數(shù)組進(jìn)行索引

在 NumPy 中使用兩個布爾數(shù)組進(jìn)行索引

慕勒3428872 2024-01-04 17:22:47
我在 numpy 數(shù)組中有一些數(shù)據(jù),然后我想選擇子集的子集,并更新這些值。假設(shè)第一個數(shù)組 A 有 N 個元素。然后,我使用布爾數(shù)組 mask1,其中 N 個元素作為掩碼來選擇第一個子集。然后,我使用第二個布爾數(shù)組 mask2 和 sum(mask1) 元素來選擇第一個子集的子集。但是當(dāng)我嘗試更新這些值時,它們不會存儲到原始數(shù)組中。代碼示例:N = 10A = np.arange(N)# Create mask of size N, with only some True valuesmask1 = np.zeros(N, dtype = np.bool)mask1[:7] = True# Create mask of size (sum(mask1)), with only some True valuesmask2 = np.zeros(np.sum(mask1), dtype = np.bool)mask2[2:] = True# Indexing with both masks works as expected:print(A[mask1][mask2])這打印[2 3 4 5 6]正如預(yù)期的那樣。但是當(dāng)我嘗試更新以這種方式索引的值時,它不起作用。# Trying to update those values does not work:A[mask1][mask2] = -1print(A)這將打印原始的、未更改的數(shù)組:[0 1 2 3 4 5 6 7 8 9]如果我僅使用一個布爾數(shù)組進(jìn)行索引,那么值就會更新,所以這是一種可能的解決方法。但是,我正在為物理過程實(shí)現(xiàn)一種算法,其中首先創(chuàng)建一個掩碼,根據(jù)一個標(biāo)準(zhǔn)進(jìn)行子集化,然后根據(jù)另一個標(biāo)準(zhǔn)進(jìn)一步對它進(jìn)行子集化,這是非常自然的,所以如果我可以將其實(shí)現(xiàn),那將非常優(yōu)雅工作。
查看完整描述

1 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個贊

一個高性能的將是鏈?zhǔn)窖诒?/em>-

mask1[mask1] = mask2
A[mask1] = -1

性能不太好 -

A[np.flatnonzero(mask1)[mask2]] = -1


查看完整回答
反對 回復(fù) 2024-01-04
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號