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