索引一维numpy.array作为矩阵

Ala*_*ain 7 python numpy

我试图在运行时索引具有不同维度的numpy.array.要检索例如*m数组的第一行a,您可以这样做

a[0,:]
Run Code Online (Sandbox Code Playgroud)

但是,如果恰好是1xn向量,则上面的代码会返回索引错误:

IndexError:索引太多了

由于代码需要尽可能高效地执行,我不想引入if声明.有没有人有一个方便的解决方案,理想情况下不涉及更改任何数据结构类型?

Sve*_*ach 9

只需使用a[0]而不是a[0,:].它将返回矩阵的第一行和向量的第一个条目.这是你想要的?

如果你想在一维情况下得到整个矢量,你可以使用numpy.atleast_2d(a)[0].它不会复制你的矢量 - 它只是作为一个二维1 x n阵列访问它.