python - numpy,h5py : How do I make an array sorted by one of its columns from a bigger one saved with h5py?

标签 python arrays sorting numpy h5py

我想向您提供一些背景信息,以便您更好地理解我的问题。

根据实验结果,我使用 h5py 填充了一个包含大量列的大 hdf5 表。完成所有测量后,我需要绘制并拟合一些结果。这已经可以工作了,但是当我到达想要绘制拟合函数的点时,因为我的数据不是按带有“x”轴数据的列排序的,而不是单行,我得到了一个丑陋的后退-第四行(我会向你展示它,但我还没有足够的声誉)。

所以我的第一个想法是在绘制和拟合之前对数组进行排序。我尝试遵循我在这里找到的几个指南,但我连接的数组的形状错误,当时我认为可能有更好的方法来做到这一点。

所以我的问题是,使用 h5py 从保存在 hdf5 文件中的更大数组中获取按其列之一排序的数组的最佳方法是什么?

这就是我目前正在做的事情:

假设我已经从 hdf5 文件中提取了列(尽管这可能可以改进!),现在我正在制作它们。

x_d = array([5, 2, 10, 4])
y_d = array([0.2, 1.0, 4.1, 0.1])

wtype = np.dtype([('x', x_d.dtype), ('y', y_d.dtype)])
w = np.empty(len(x_d), dtype=wtype)
w['x'] = x_d
w['y'] = y_d

w.sort(order='x')

最佳答案

按照这些思路应该可以工作:

f = h5py.File('myfile.hdf5','r')
x_d = f['x_axis'][:]
y_d = f['values'][:]
sorted_y = y_d[numpy.argsort(x_d)]

或者如果您想要相反的顺序:

sorted_y = y_d[numpy.argsort(x_d)[::-1]]

关于python - numpy,h5py : How do I make an array sorted by one of its columns from a bigger one saved with h5py?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19704880/

相关文章:

python - 使用 Python 从 YouTube 播放音频的最快方法

ios - 使用数组快速修改 Tableview

Java : Save Assigned String from method in an array

C++合并排序不会合并?

c# - 书籍索引的序列和 Rangify 列表

algorithm - 自行车与人的最佳配对——求算法证明

python - 对 Python 最小测验感到困惑

python - AUTH_USER_MODEL 指的是尚未安装的型号 '%s'”

python - 在处理元组/列表时,Python 的堆栈如何工作?

c - 指向 3d 数组的指针