python - 如何访问不同维度的多维 NumPy 数组的特定行?

标签 python numpy multidimensional-array indexing

我有一个二维的 NumPy 数组,因此第一个数组是从 1 到 50 的数字,第二个数组是 50 到 150 的数字:

a =numpy.array([[1,2,3,...,50],[50,51,52...,150]])

我想通过打印指定的行,例如第二行

打印(a[1,:]),

获取[50,51,52...,150],但它显示

    print((a[1,:]))
IndexError: too many indices for array  

错误。当我将第二行减少到与第一行相同数量的元素时,它就起作用了。因此,问题是打印具有不同尺寸的指定行。如果可以的话,请问您能告诉我如何处理吗?谢谢!

最佳答案

如果两个部分中的元素数量不同,您不会得到二维数组:

In [15]: a1=list(range(1,6))
In [16]: a2=list(range(5,16))
In [17]: a=np.array([a1,a2])
In [18]: a
Out[18]: array([[1, 2, 3, 4, 5], [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]], dtype=object)
In [19]: a[1]
Out[19]: [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
In [20]: a.shape
Out[20]: (2,)

注意dtype。是对象啊a 是一个 2 元素数组,包含 2 个列表。在大多数情况下,它只是两个原始列表的列表,并且必须以相同的方式建立索引:

In [21]: [a1,a2]
Out[21]: [[1, 2, 3, 4, 5], [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]]

如果两个组件具有相同的长度,则 np.array 会构造一个二维数组。

当您遇到此类问题时,请检查shapedtype。仅仅假设这些属性是危险的。将它们打印出来。并警惕将不同长度的列表或数组与 numpy 混合。它最适合适合整齐规则多维结构的数据。

关于python - 如何访问不同维度的多维 NumPy 数组的特定行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44339663/

相关文章:

python - 使用 distutils 构建 C 扩展时打印编译器和链接器命令

python - 在同一程序中播种 random 和 numpy.random 的最佳实践

python - 如何从 Python 中的数据框中排除非数字整数

javascript - 计算每个值在数组中有多少个对象

c - 如何从 C 中作为结构成员的指针访问数组中的值

python - 是 Python 中的关键字

python - tensorflow 中的权重初始化

swift - 在多部分 TableView 中使用 TextField 进行搜索 - Swift

python - 如何在Python中向不同的收件人发送不同内容的电子邮件?

python - 如何加入行的切片以在 python 中创建一个新行