- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
有没有一种简单的方法可以在不创建新的 recarray 的情况下将记录/行添加到 numpy recarray?假设我有一个占用 1Gb 内存的 recarray,我希望能够向其中添加一行而不让 python 暂时占用 2Gb 内存。
最佳答案
您可以调用yourrecarray.resize
具有多一行的形状,然后分配给该新行。当然。 numpy
可能如果它没有足够的空间来就地增长数组,它仍然必须分配全新的内存,但至少你有机会!-)
由于需要一个例子,所以来了,修改了规范 example list ...:
>>> import numpy
>>> mydescriptor = {'names': ('gender','age','weight'), 'formats': ('S1', 'f4', 'f4')}
>>> a = numpy.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=mydescriptor)
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0)]
>>> a.shape
(2,)
>>> a.resize(3)
>>> a.shape
(3,)
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0) ('', 0.0, 0.0)]
>>> a[2] = ('X', 17.0, 61.5)
>>> print a
[('M', 64.0, 75.0) ('F', 25.0, 60.0) ('X', 17.0, 61.5)]
关于python - 将行添加到 numpy recarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598251/
假设我用相同的 dtype 制作了两个 recarrays 并将它们堆叠起来: >>> import numpy as np >>> dt = [('foo', int), ('bar', float
如果我以这种方式创建一个 recarray: In [29]: np.rec.fromrecords([(1,'hello'),(2,'world')],names=['a','b']) 结果看起来不
我有一对 numpy 数组;这是一个简单的等效示例: t = np.linspace(0,1,100) data = ((t % 0.1) * 50).astype(np.uint16) 我希望这些是
我有一个结构化的 numpy 数组,我正在按顺序对其进行排序。 它工作得很好,但只有一个方向! 降序: sort(myStructuredArray,order=my_order)[::-1] 和 上
我有一个名为 data.csv 的数据文件 name,value A,10 1,20 B,30 3,20 ... 所以问题是我使用 numpy 和 mlab 来加载这个 csvfile data =
在numpy docs的一次访问多个字段部分中, 说: 请注意,字段总是以相同的顺序返回,不管它们被要求的顺序如何。 文档还给出了一个例子如下: >>> x = np.array([(1.5,2.5,
我有一个 csv 文件,其中两列(v3 和 v7)对于所有观察结果都是空白的: v1,v2,v3,v4,v5,v6,v7 GNB,1980,,20,-1.168689,0.4619077, GNB,1
给定一个元组列表,其中每个元组代表表中的一行,例如 tab = [('a',1),('b',2)] 有没有一种简单的方法可以将其转换为记录数组?我试过了 np.recarray(tab,dtype=[
构造结构化/重载数组时,我对类型转换的行为感到困惑: 这个简单的示例接受数字字段,但将类型定义为字符串: data = [(1.0, 2), (3.0, 4)] np.array(data, dtyp
有没有一种简单的方法可以在不创建新的 recarray 的情况下将记录/行添加到 numpy recarray?假设我有一个占用 1Gb 内存的 recarray,我希望能够向其中添加一行而不让 py
我用 C# 编写了一个数据使用者,它从 python API 脚本读取字符串数据。到目前为止,我发现性能最好的方法是将数据放入 python 中的 numpy-recarray,将其打印到控制台并使用
我正在尝试复制一个recarray 并更改新数组中字段/记录的名称。但是,这会修改原始数组的名称(但是,这些值并未取消链接)。例子: import numpy as np import copy 定义
我在创建 datetime64 类型的记录数组时遇到问题。我正在运行 Python 2.7、Numpy 1.7。 这是一个最小的例子: p_dtype = np.dtype({"names": ['t
numpy.recarray.tobytes 的逆是什么? >>> import numpy as np >>> A = np.array([(28483,27759)],dtype=[('x','>
我想创建一个 numpy.recarray 的子类,当数据添加到超出其当前长度的行时自动调整大小。 下面的代码完成了大部分我想要的。 class autorecarray(numpy.recarray
我在 QGIS-user forum 上发布了这个问题但这可能太技术性了,因此我也捕获机会在这里尝试一下。 我的计划是有一个 QGIS 插件来读取和绘制与矢量图层中选定点对应的时间序列数据(这些点代表
有没有一种方便的方法可以删除 recarray 中包含某些值的行?假设我有以下数组, a=numpy.array([(1.0, 2.0, 3.0), (4.0, 5.0, 10.0),(1.0,10.
我有一个来自读取 csv 文件的 recarray。我有兴趣将列的子集转换为连续的 float 组。我想避免将它们转换为列表或将它们一一堆叠。我尝试了 https://stackoverflow.co
我是 numpy 的新手,我正在尝试替换 recarray 中的值。所以我有这个数组: import numpy as np d = [('1', ''),('4', '5'),('7', '8')]
我有一个 recarray,其中包含几个用于选择子集的列。有点像 >>> x array([ ('label1',True,3), ('label2',True,2),
我是一名优秀的程序员,十分优秀!