Numpy:从具有 1 行的二维数组中获取一维数组

Numpy: get 1D array from a 2D array with 1 row

我有一个复杂的函数,returns 一个二维数组,为简单起见,让我们考虑以下内容:

import numpy as np

def get_array():
    a = np.array([[0, 9, 5]])
    return a

是否有 numpy 命令允许我自动检索单行而不是执行以下操作?

def get_array():
    a = np.array([[0, 9, 5]])
    if a.shape[0] == 1:
        return a[0]
    else:
        return a 
    return a

非常感谢!

np.squeeze(a) 将从 a.

中删除任何单位大小的轴
>>> np.squeeze([1, 2, 3])
array([1, 2, 3])

>>> np.squeeze([[1, 2, 3]])
array([1, 2, 3])

>>> np.squeeze([[1, 2, 3], [4, 5, 6]])
array([[1, 2, 3],
       [4, 5, 6]])

虽然这可能不是您想要的,还有:

>>> np.squeeze([[1], [2]])
array([1, 2])

除了@orlp 的回答之外,如果您注重性能,ravel 似乎比挤压更快: