python - 访问同构行主要 NumPy 数组中的行时如何提高可读性?
问题描述
我的代码中有一个 a 的概念trajectory
。它由N
空间中的点组成,每个点有 7 条数据,s
(路径长度)、x
、y
、z
(位置)和tx
、ty
、tz
(切向量)。我想将这些数据存储在numpy.array
. Numpy 默认是行优先的,我希望这些标签中的每一个都是一行,以实现最佳访问。这是因为我通常不会访问单个点,而是主要对每一行(s
、x
等)作为一个整体进行操作。
我能做的就像trajectory = np.zeros((7, N))
然后通过做访问每一行trajectory[6]
然后计算我想要的。但是我讨厌这是多么难以理解。我根本没有发现基于索引的原始访问是可读的,当我查看一个 numpy 表达式并看到这些基于索引的访问负载执行一些计算时,我的眼睛会呆滞。那么显而易见的事情就是以某种方式使用名称访问它们。我查看了结构化数组,但这些更多用于异构数据类型,结构在内存中对齐,因此例如z
和tx
将彼此相邻,这不符合我想要的精神。你可以说,让它们完全是不同的数组(即 7 个不同的数组),但是我会失去一些很好的操作,将它们视为单个数组是有意义的。
那么是否有可能在 numpy 中为同质数据提供更多人类可读的数组访问?如果不完全正确,那么在没有等的情况下制作更具可读性的 numpy 代码的常见解决方案是什么y = x[1] + x[4] * x[3]
?
解决方案
推荐阅读
- css - 如何将表单字段与文本内联?
- c# - 如果在加载时更改内容,则 StackPanel 中的 WPF 标签不会调整大小
- node.js - 从 readline 的线路回调中进行异步调用?
- embedded-linux - dbus-daemon --session 给出循环包含错误
- php - 根据下拉选择使用 PHP/MySQL 更改数据库
- docker - kafka消费者无法连接
- php - 在一定数量的列之后拆分html表
- java - 端点返回对象而不是直接 JSON
- java - 使用 Java 8 流查找数组中对角线元素的总和
- node.js - Sequelize where option sql injection?