Python numpy索引意外行为

Python numpy索引意外行为,python,numpy,Python,Numpy,我有一个带有形状(6,4)的ndarraybla。当我打印它时,我得到: [[0. 1. 1. 1.] [0. 0. 0. 2.] [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] 一切都很正常 但是,当我尝试从中获取元素时,bla[0][0]我得到了indexer错误:标量变量的索引无效。 我可以使用bla[0]获取第一行,它返回[0.1.1.1.](如预期的那样)。但是

我有一个带有形状(6,4)的ndarray
bla
。当我打印它时,我得到:

    [[0. 1. 1. 1.]
     [0. 0. 0. 2.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]
     [0. 0. 0. 0.]]
一切都很正常

但是,当我尝试从中获取元素时,
bla[0][0]
我得到了
indexer错误:标量变量的索引无效。

我可以使用
bla[0]
获取第一行,它返回
[0.1.1.1.]
(如预期的那样)。但是,我无法获得像
bla[:,0]
这样的第一列-这将返回
索引器错误:数组的索引太多

我假设我犯了某种用户错误,但经过检查和复查,我无法理解问题可能是什么。执行
np.zero((6,4))[0][0]
的工作与预期一样

更新1

另一个奇怪的现象:
np.zeros((6,4))==np.zeros(bla.shape)
给出真值,而
np.zeros(bla.shape)[0][0]
给出错误,而
np.zeros((6,4))[0][0]
工作正常(直接从输出:
bla shape:<6,4)

更新2 pickle.dumps(bla)提供以下信息:

b'\x80\x03cnumpy.core.multiarray\n_reconstruct\nq\x00cnumpy\nndarray\nq\x01K\x00\x85q\x02C\x01bq\x03\x87q\x04Rq\x05(K\x01K\x06K\x04\x86q\x06cnumpy\ndtype\nq\x07X\x02\x00\x00\x00f8q\x08K\x00K\x01\x87q\tRq\n(K\x03X\x01\x00\x00\x00<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89C\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00q\rtq\x0eb.'

[代码>b<代码>b<代码>b<代码>b<代码>b\x80\X0\X03C\X0\XX0\X0\X0\X0\Cb\b\X0\X0\X0\X0\X0\X0\X0\X0\X0\X0\X03C\X0\X03C\X03C\X03C 03C\C 03CNCNumumumumumumumpuC.核心.核心.核心.核心.核心.核心.核心.核心.核心.多数组.核心.多阵列.多阵列.多阵列.多阵列.多阵列\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n重建\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\]?能否添加
类型的结果(bla)
类型(bla[0])
?如果没有代码来复制它,很难判断问题出在哪里。不确定是否发生了这种情况,但可以用一种令人困惑的方式将NumPy数组打包到NumPy
对象
标量中。查看
bla.item()[:,0]
有效。无法复制确认无法使用
pickle.dumps进行复制。
输出..
bla[0][0]
返回
0.0
对于我来说,您的问题似乎无论如何都不可复制。可能是您的NumPy安装、Python会话或其他方面出了问题。如果打开另一个Python会话并加载该对象,请查看问题是否仍然存在(
导入pickle;导入NumPy作为np;bla=pickle.loads()
)。请尝试重新安装/更新NumPy。
b'\x80\x03cnumpy.core.multiarray\n_reconstruct\nq\x00cnumpy\nndarray\nq\x01K\x00\x85q\x02C\x01bq\x03\x87q\x04Rq\x05(K\x01K\x06K\x04\x86q\x06cnumpy\ndtype\nq\x07X\x02\x00\x00\x00f8q\x08K\x00K\x01\x87q\tRq\n(K\x03X\x01\x00\x00\x00<q\x0bNNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00tq\x0cb\x89C\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00q\rtq\x0eb.'