将多个 numpy 数组组合成不同形状之一

Posted

技术标签:

【中文标题】将多个 numpy 数组组合成不同形状之一【英文标题】:Combine multiple numpy arrays into one of different shapes 【发布时间】:2020-08-23 12:23:26 【问题描述】:

所以我有四个不同形状的 numpy 数组:

(2580, 100)
(2580, 237)
(2580, 8)
(2580, 37)

如何将所有数组组合成一个 numpy 数组?

给我以下错误:

ValueError: could not broadcast input array from shape (2580,237) into shape (2580)

【问题讨论】:

【参考方案1】:
>>> import numpy as np
>>> a = np.zeros((2580, 100))
>>> b = np.zeros((2580, 237))
>>> c = np.zeros((2580, 8))
>>> d = np.zeros((2580, 37))
>>> e = np.concatenate((a, b, c, d), axis=1)
>>> e.shape
(2580, 382)

【讨论】:

【参考方案2】:

您可以使用np.c_ 沿轴连接

import numpy as np
f = np.zeros(shape=(5,4))
s = np.zeros(shape=(5,6))
t = np.zeros(shape=(5,16))
res=np.c_[f,s,t]
res.shape
(5,26)

【讨论】:

【参考方案3】:

只有我们 np.concatenate

import numpy as np
a = np.random.rand(2580, 100)
b = np.random.rand(2580, 237)
c = np.random.rand(2580, 8)
d = np.random.rand(2580, 37)

e = np.concatenate((a, b, c, d), axis = 1)
print(e.shape) 
# (2580, 382)

【讨论】:

以上是关于将多个 numpy 数组组合成不同形状之一的主要内容,如果未能解决你的问题,请参考以下文章

通过沿一个轴堆叠将两个 numpy 视图组合成一个视图

可组合成内容形状的剪辑

将不同大小的数组组合成一个对象?

将相同numpy数组的两个视图组合成单个视图而不复制数组?

将多个数据文件组合成 np.arrays,存储在字典中

将多个元素数组组合成单个 jQuery 选择器