Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中nd数组的逻辑索引_Python_Arrays_Numpy - Fatal编程技术网

python中nd数组的逻辑索引

python中nd数组的逻辑索引,python,arrays,numpy,Python,Arrays,Numpy,我试图从一个nxnnumpy数组中提取所有索引,其中A和B数组中的值都等于某个值x-查找公共重叠 我正在努力: A[A==1 and B==1] 但是得到一个错误: ValueError:包含多个元素的数组的真值不明确。使用a.any或a.all 我该如何回避这个问题呢?也许有点草率地提出这个问题。用过的numpy's logical_and(x1, x2[, out]) 最后哪一个做得很好 发布这个问题可能有点仓促。用过的numpy's logical_and(x1, x2[, ou

我试图从一个nxnnumpy数组中提取所有索引,其中A和B数组中的值都等于某个值x-查找公共重叠

我正在努力:

   A[A==1 and B==1]
但是得到一个错误:

ValueError:包含多个元素的数组的真值不明确。使用a.any或a.all


我该如何回避这个问题呢?

也许有点草率地提出这个问题。用过的numpy's

logical_and(x1, x2[, out])

最后哪一个做得很好

发布这个问题可能有点仓促。用过的numpy's

logical_and(x1, x2[, out])

最后哪一个做得很好

Numpy无法重载and关键字。但是,它重载了二进制AND运算符。尝试:

A[A==1&B==1]


这些论断很重要。我发现它通常不总是可读性更好,因此逻辑_和

Numpy无法重载and关键字。但是,它重载了二进制AND运算符。尝试:

A[A==1&B==1]

这些论断很重要。我发现它的可读性通常不如逻辑_和

A==1和B==1是布尔数组,而A==1*B==1是整数数组。您可以通过NumPy找到此数组的非零项:

np.where==1*B==1 演示 考虑以下三维数组,这些数组随机填充值-1、0和1:

在[1066]中:将numpy作为np导入 在[1067]:np.random.seed2016中,这是为了在多次运行时获得相同的结果 In[1068]:N=3 …:A=np.random.randintlow=-1,high=2,size=N,N,N …:B=np.random.randintlow=-1,high=2,size=N,N,N 在[1069]中:A Out[1069]: 数组[[1,1,0], [-1, 1, -1], [-1, -1, -1]], [[ 0, 1, 1], [-1, 1, 1], [ 0, 1, 0]], [[ 0, 1, 0], [-1, 1, 1], [-1, 1, 0]]] In[1070]:B 出[1070]: 数组[-1,0,0], [-1, -1, 1], [ 0, -1, -1]], [[-1, -1, -1], [-1, 1, 1], [-1, 1, 1]], [[ 1, 1, -1], [-1, 0, 1], [-1, 1, -1]]] 函数,其中返回整数数组的元组,该元组触发:

在[1071]中:idx=np.where==1*B==1 In[1072]:idx 出[1072]: 数组[1,1,1,2,2],dtype=int64, 数组[1,1,2,0,1,2],dtype=int64, 数组[1,2,1,1,2,1],dtype=int64 In[1073]:A[idx] Out[1073]:数组[1,1,1,1,1,1] In[1074]:B[idx] Out[1074]:数组[1,1,1,1,1,1] A==1和B==1是布尔数组,而A==1*B==1是整数数组。您可以通过NumPy找到此数组的非零项:

np.where==1*B==1 演示 考虑以下三维数组,这些数组随机填充值-1、0和1:

在[1066]中:将numpy作为np导入 在[1067]:np.random.seed2016中,这是为了在多次运行时获得相同的结果 In[1068]:N=3 …:A=np.random.randintlow=-1,high=2,size=N,N,N …:B=np.random.randintlow=-1,high=2,size=N,N,N 在[1069]中:A Out[1069]: 数组[[1,1,0], [-1, 1, -1], [-1, -1, -1]], [[ 0, 1, 1], [-1, 1, 1], [ 0, 1, 0]], [[ 0, 1, 0], [-1, 1, 1], [-1, 1, 0]]] In[1070]:B 出[1070]: 数组[-1,0,0], [-1, -1, 1], [ 0, -1, -1]], [[-1, -1, -1], [-1, 1, 1], [-1, 1, 1]], [[ 1, 1, -1], [-1, 0, 1], [-1, 1, -1]]] 函数,其中返回整数数组的元组,该元组触发:

在[1071]中:idx=np.where==1*B==1 In[1072]:idx 出[1072]: 数组[1,1,1,2,2],dtype=int64, 数组[1,1,2,0,1,2],dtype=int64, 数组[1,2,1,1,2,1],dtype=int64 In[1073]:A[idx] Out[1073]:数组[1,1,1,1,1,1] In[1074]:B[idx] Out[1074]:数组[1,1,1,1,1,1]
也许有点草率地发布了这个问题。使用了numpy的逻辑_和x1,x2[,out],可能有点草率地发布了这个问题。使用了numpy的逻辑_和x1,x2[,out]谢谢!我还发现numpy有自己的一组逻辑函数,如下所示,但了解这一点非常有用!!谢谢我还发现numpy有自己的一组逻辑函数,如下所示,但了解这一点非常有用!!