Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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 高维数组的numpy.where行为是否不稳定?_Python_Numpy - Fatal编程技术网

Python 高维数组的numpy.where行为是否不稳定?

Python 高维数组的numpy.where行为是否不稳定?,python,numpy,Python,Numpy,。。。还是我的错 我有一个七维数组,shape=(5,5,5,5,5,5),主要由零和一些(~10)非零元素填充 我观察到,在某些情况下,numpy.where不会返回人们期望数组元组具有的值。形状正确,即对于具有10个非零元素的七维数组,一个具有7个元素(每个轴一个)的元组,每个元素都是10个元素的数组(坐标沿该轴)。有时所有这些数组都相同,有时则不同 我运行Windows 10,这是我的python安装: win32上的Python 3.5.3 | Continuum Analytics,I

。。。还是我的错

我有一个七维数组,
shape=(5,5,5,5,5,5)
,主要由零和一些(~10)非零元素填充

我观察到,在某些情况下,
numpy.where
不会返回人们期望数组元组具有的值。形状正确,即对于具有10个非零元素的七维数组,一个具有7个元素(每个轴一个)的元组,每个元素都是10个元素的数组(坐标沿该轴)。有时所有这些数组都相同,有时则不同

我运行Windows 10,这是我的python安装:

win32上的Python 3.5.3 | Continuum Analytics,Inc.(默认,2017年2月22日,21:28:42)[MSC v.1900 64位(AMD64)]

下面是一些重现错误的代码:

import numpy as np

for i in range(5,11):
    print("dims:", i)
    A = np.zeros([5]*i)
    print("shape:", A.shape)
    for j in range(10):
        c = np.random.randint(low=0, high=5, size=i)
        A[tuple(c)] = j
        print(tuple(c), ":", j)
    print(np.where(A))
5个维度的样本输出:

(0, 4, 1, 2, 1) : 0
(2, 0, 3, 1, 4) : 1
(3, 2, 0, 0, 4) : 2
(0, 4, 0, 2, 0) : 3
(4, 2, 4, 4, 3) : 4
(3, 3, 4, 3, 1) : 5
(1, 2, 1, 3, 4) : 6
(0, 4, 0, 4, 0) : 7
(4, 4, 0, 4, 2) : 8
(4, 0, 0, 2, 3) : 9
(array([0, 0, 1, 2, 3, 3, 4, 4, 4], dtype=int64), array([4, 4, 2, 0, 2, 3, 0, 2, 4], dtype=int64), array([0, 0, 1, 3, 0, 4, 0, 4, 0], dtype=int64), array([2, 4, 3, 1, 0, 3, 2, 4, 4], dtype=int64), array([0, 0, 4, 4, 4, 1, 3, 3, 2], dtype=int64))
以及10维的输出,在同一次运行中–请注意结果元组中的所有数组是如何相同的:

(0, 3, 3, 4, 4, 4, 1, 3, 2, 1) : 0
(0, 2, 3, 0, 2, 0, 1, 0, 3, 4) : 1
(4, 1, 3, 3, 3, 3, 2, 3, 2, 3) : 2
(2, 3, 1, 3, 1, 1, 1, 4, 1, 4) : 3
(4, 0, 2, 3, 4, 1, 3, 0, 4, 0) : 4
(3, 0, 0, 0, 3, 4, 3, 2, 3, 4) : 5
(2, 4, 0, 2, 2, 1, 4, 2, 2, 2) : 6
(1, 1, 0, 4, 1, 3, 2, 0, 3, 2) : 7
(4, 1, 2, 4, 1, 3, 1, 2, 4, 1) : 8
(0, 2, 0, 1, 0, 1, 4, 1, 1, 2) : 9
(array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64), array([0, 0, 1, 2, 2, 3, 4, 4, 4], dtype=int64))
有时错误发生在>=8维,有时发生在9维

这是我对
numpy.where
numpy
中的错误还是我的python安装或系统的问题造成的问题?

我无法在Linux上复制这种行为
python 3.5.4 | Continuum Analytics,Inc.|(默认,2017年8月14日,13:26:58)[GCC 4.4.7 20120313(Red Hat 4.4.7-1)]。。。至少有3^18个元素的数组。这似乎是从
numpy-1.13.0-py35_0
numpy-1.13.1-py35_0
的更新。我现在无法为最多5^12或3^18个元素的数组重现该错误。