我有一对 numpy 数组;这是一个简单的等效示例:
t = np.linspace(0,1,100)
data = ((t % 0.1) * 50).astype(np.uint16)
我希望这些是 dtype f8, i2
的 numpy recarray 中的列。这是我似乎可以得到我想要的东西的唯一方法:
X = np.array(zip(t,data),dtype=[('t','f8'),('data','i2')])
但是如果我的数据值很大,这是正确的方法吗?我想尽量减少移动数据的不必要开销。
这看起来应该是一个简单的问题,但我找不到一个很好的例子。
最佳答案
一个直接的方法是使用 numpy.rec.fromarrays
.在你的情况下:
np.rec.fromarrays([t, data], dtype=[('t','f8'),('data','i2')])
或者只是
np.rec.fromarrays([t, data], names='t,data', formats='f8,i2')
会起作用。
替代方法也在 Converting a 2D numpy array to a structured array 中给出。
关于python - 如何从列数组制作一个numpy recarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077360/