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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 numpy bool 數(shù)組作為另一個(gè) arry 的索引

使用 numpy bool 數(shù)組作為另一個(gè) arry 的索引

大話西游666 2023-08-15 17:04:24
編輯我的問題以使其更加清晰,因?yàn)槲覠o法獲得第一個(gè)工作答案。我正在嘗試制作一個(gè) N 維查找表,根據(jù) N 個(gè) True/False 值的輸入列表從中查找一個(gè)值。為此,我創(chuàng)建了一個(gè) N 維數(shù)組,其中每個(gè)維度的長度為 2 - 一個(gè)值表示 False (=0),一個(gè)值表示 True (=1)import numpy as npimport randomdims = 3values = range(pow(2,dims))lookup=np.reshape(values,np.tile(2,dims)) #this makes a 2x2x2x... arraycondition=random.choices([True,False],k=dims) #this makes a 1d list of bools條件中的布爾值現(xiàn)在應(yīng)該指定要查找的索引。以 N=3 為例:如果條件 =(True,False,True),我想要查找[1,0,1]。只需使用lookup[condition.astype(int)]不起作用,因?yàn)?numpy 不會(huì)將 1x3 數(shù)組解釋為索引。lookup[condition[0],condition[1],condition[2]]作品。但我還沒弄清楚如何在 N 維上寫這個(gè)
查看完整描述

1 回答

?
largeQ

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊

手動(dòng)將其轉(zhuǎn)換為 int 元組可以實(shí)現(xiàn)您所尋求的索引。測(cè)試下面的代碼。


import numpy as np


# your example had d=3, but you may have something else.

# this is just creation of some random data...

d=3

answers = np.random.normal(size=[2] * d)

truth = tuple(np.random.choice([True, False], replace=True, size=d))


# manual conversion to int-tuple is needed, for numpy to understand that it

# is a indexing tuple.

# the box at the top of https://numpy.org/doc/stable/reference/arrays.indexing.html 

# says that tuple indexing is just like normal indexing, and in that case, we 

# need to have normal ints.

idx = tuple(int(b) for b in truth)

answer = answers[idx]

print(answer)


查看完整回答
反對(duì) 回復(fù) 2023-08-15
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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