编辑我的问题以使其更加清晰,因为我无法获得第一个工作答案。
我正在尝试制作一个 N 维查找表,根据 N 个 True/False 值的输入列表从中查找一个值。
为此,我创建了一个 N 维数组,其中每个维度的长度为 2 - 一个值表示 False (=0),一个值表示 True (=1)
import numpy as np
import random
dims = 3
values = range(pow(2,dims))
lookup=np.reshape(values,np.tile(2,dims)) #this makes a 2x2x2x... array
condition=random.choices([True,False],k=dims) #this makes a 1d list of bools
条件中的布尔值现在应该指定要查找的索引。以 N=3 为例:如果条件 =(True,False,True),我想要查找[1,0,1]。
只需使用
lookup[condition.astype(int)]
不起作用,因为 numpy 不会将 1x3 数组解释为索引。
lookup[condition[0],condition[1],condition[2]]
作品。但我还没弄清楚如何在 N 维上写这个
largeQ
相关分类