我正在尝试在运行时为具有不同维度的 numpy.array 编制索引。检索例如n*m 数组的第一行 a
,你可以简单地做
a[0,:]
但是,如果 a 恰好是 1xn 向量,上面的代码会返回索引错误:
IndexError: too many indices
由于需要尽可能高效地执行代码,因此我不想引入 if
语句。有人有理想的不涉及更改任何数据结构类型的便捷解决方案吗?
最佳答案
只需使用 a[0]
而不是 a[0,:]
。它将返回矩阵的第一行和向量的第一个条目。这是您要找的吗?
如果您想获得一维情况下的整个向量,您可以使用 numpy.atleast_2d(a)[0]
。它不会复制您的矢量 - 它只会将其作为二维 1 x n 数组进行访问。
关于python - 将一维 numpy.array 索引为矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716647/