我试图在运行时索引具有不同维度的numpy.array.要检索例如*m数组的第一行a,您可以这样做
a[0,:]
Run Code Online (Sandbox Code Playgroud)
但是,如果恰好是1xn向量,则上面的代码会返回索引错误:
IndexError:索引太多了
由于代码需要尽可能高效地执行,我不想引入if声明.有没有人有一个方便的解决方案,理想情况下不涉及更改任何数据结构类型?
只需使用a[0]而不是a[0,:].它将返回矩阵的第一行和向量的第一个条目.这是你想要的?
如果你想在一维情况下得到整个矢量,你可以使用numpy.atleast_2d(a)[0].它不会复制你的矢量 - 它只是作为一个二维1 x n阵列访问它.