python - 替换和扁平化 Numpy 数组
问题描述
我有形状的 ndarray (2,1)
。每个元素都是一个形状的 ndarray(4)
我想制作一个形状的数据框(2,4)
当前形状:
df.shape = (2,1)
df[0].shape = (1,)
df[0][0].shape = (4,)
例如:
df[0][0] = [1 2 2 4]
df[1][0] = [1 1 1 1]
我希望它看起来像这样:
df[0] = [1 2 2 4]
df[1] = [1 1 1 1]
解决方案
看起来你有一个对象 dtype 数组(但为什么叫它df
?):
In [150]: df = np.empty((2,1),object)
In [151]: df[0,0] = np.array([1,2,2,4])
In [152]: df[1,0] = np.array([1,1,1,1])
In [153]: df
Out[153]:
array([[array([1, 2, 2, 4])],
[array([1, 1, 1, 1])]], dtype=object)
In [154]: df.shape
Out[154]: (2, 1)
In [155]: df[0].shape
Out[155]: (1,)
In [156]: df[0,0].shape
Out[156]: (4,)
np.concatenate
(或其中一个stack
派生词)可以加入数组的列表/可迭代数组,前提是它们的大小匹配。
stack
直接应用于df
不起作用,因为它是 (2,1) 形的:
In [157]: np.stack(df)
Out[157]:
array([[array([1, 2, 2, 4])],
[array([1, 1, 1, 1])]], dtype=object)
但是,如果我们首先解开(或挤压)数组,使其成为 (2,) 形状:
In [158]: np.stack(df.ravel())
Out[158]:
array([[1, 2, 2, 4],
[1, 1, 1, 1]])
推荐阅读
- nginx - 关于将域链接到服务器的超级基本问题
- excel - 使用 .formula 时出现 VBA 运行时错误“1004”
- c - 从字符缓冲区复制时,memcpy 返回垃圾数据
- angular - 在 Angular GET 请求后将 MenuItems 动态添加到 PrimeNG 菜单
- command - telethon 电报客户端是否有任何命令处理程序?
- c - 将 struct 成员放在单独的变量中以清理代码并帮助我了解代码的格式会如何不同
- php - Mysql_query 调用未定义函数 mysql_query()
- c - 检查字符串中的字符是否为Ñ
- lotus-notes - 从视图中的操作按钮显示 OKCancelList 提示
- javascript - 对于循环中的每个项目,您将如何迭代并返回不同数组中的项目?