有人可以向我解释一下列表大小的差异吗?一次是(x,1),另一个是(x,)。我想我因此得到了一个 idexError 。
print(Annotation_Matrix)
[array([[1],
...,
[7],
[7],
[7]], dtype=uint8)]
print(idx)
[array([ True, True, True, ..., False, False, False], dtype=bool)]
附:左边的创建是用
matlabfile.get(...)
正确的一个
in1d(...)
最佳答案
大小为 (x,1) 的数组 A 是 x 行 1 列(二维)的矩阵,与大小为 (1,x) 的 A.T 不同。它们具有相同的元素,但“方向”不同。 大小为 (x,) 的数组 B 是 x 坐标(1 维)的向量,没有任何方向(它不是行也不是列)。它只是一个元素列表。
在第一种情况下,可以使用 A[i,:] 访问元素,它与 A[i,0] 相同(因为它只有一列)。 在后面,调用 B[i,:] 会导致错误,因为数组 B 只有一维。正确的调用是 B[i]。
希望这可以帮助您解决问题。
关于python - 列表大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38097829/