编程语言
首页 > 编程语言> > python – 按列解压缩NumPy数组

python – 按列解压缩NumPy数组

作者:互联网

如果我有一个NumPy数组,例如5×3,有没有办法一列一列地解压缩它以传递给函数而不是像这样:my_func(arr [:,0],arr [:,1], arr [:,2])?

有点像* args列表拆包但是按列.

解决方法:

您可以解压缩数组的转置,以便使用函数参数的列:

my_func(*arr.T)

这是一个简单的例子:

>>> x = np.arange(15).reshape(5, 3)
array([[ 0,  5, 10],
       [ 1,  6, 11],
       [ 2,  7, 12],
       [ 3,  8, 13],
       [ 4,  9, 14]])

让我们编写一个函数来将列添加到一起(通常在NumPy中使用x.sum(axis = 1)):

def add_cols(a, b, c):
    return a+b+c

然后我们有:

>>> add_cols(*x.T)
array([15, 18, 21, 24, 27])

NumPy数组将沿第一维解压缩,因此需要转置数组.

标签:python,arrays,numpy,argument-unpacking
来源: https://codeday.me/bug/20191007/1868657.html