python - 如何从列数组制作一个numpy recarray

标签 python arrays numpy

我有一对 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/

相关文章:

python - 从 BeautifulSoup 结果中获取表单 "action"

javascript - 为什么数组的索引在下面的代码中是一个字符串?

python - numpy.genfromtxt() dtype 用 AM/PM 解析日期时间字符串

Python json 编写 ValueError : No JSON object could be decoded

python - __repr__和eval()有什么关系,__repr__的主要目的是什么?

javascript - 清空数组的方法?

javascript - 为什么 shift() 对一个数组起作用,但对另一个数组不起作用,除非一般应用于另一个数组

python - numpy 二维矩阵乘法

python - numpy向量化函数以接受不同长度的向量并返回张量结果

php - 使用 python 或 php 处理音频文件