python - 以更简单的方式连接元组内的数组
问题描述
我有一个元组 X ,其元素是二维 numpy 数组,它们具有相同的第一个维度和不同的第二个维度。我想连接这些数组以制作 1 个大数组。例如:
X = (np.array of shape[10,3], np.array of shape[10,5], np.array of shape[10,7])。我想制作一个形状为 [10,15] 的最终数组 Y,它是元组 X 中所有元素的串联。
我做了这样的事情。它有效,但我问是否有任何更短/更简单的方法来做到这一点?谢谢!
def concat_arrays(data: tuple) -> np.ndarray:
final_array = data[0]
for i in range(len(data)):
if i > 0:
final_array = np.hstack((final_array,data[i]))
return final_array
解决方案
就是这么简单:
def concat_arrays(data: tuple) -> np.ndarray:
return np.hstack(data)
无需一次遍历和堆叠一个 - 这就是为什么要求您传递一个元组而不是两个单独的参数的原因。(无论如何,这在 Python 中并不是真正的限制——因为*args
存在——但仍然存在。)
但是当然,写这个没有意义,因为我们可以直接使用np.hstack
。
推荐阅读
- php - 如何在 Laravel Migration 中从另一个表创建虚拟计算列?
- rasa-nlu - 如何从命令行与 rasa 助手交互?
- python - 在 Python 中遍历嵌套字典
- r - R - 跨年的累积和
- list - 在 Scala 中组合减法和过滤器
- python - Django 下载文件
- prometheus - Prometheus 从 InfluxDB 远程读取不返回任何数据
- java - 如何在单独的 docker Hazelcast 节点(嵌入在应用程序中的主节点)禁用数据的反序列化过程
- java - 为什么在使用 Gson.asString 时出现 java.lang.UnsupportedOperationException?
- python-3.x - 日志未显示在 AWS Cloudwatch 中