问题标签 [recarray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
285 浏览

python - 来自 CSV dtype 的 numpy recarray 有很多列,但 shape 只显示一行,这是为什么呢?

我的 CSV 混合了字符串和数字列。nump.recfromcsv准确地推断出它们(woo-hoo),给出了一个 dtype

dtype=[('null', 'S7'), ('00', '<f8'), ('nsubj', 'S20'), ('g', 'S1'), ...

如您所见,字符串和数字的混合。但是numpy.shape(csv)给我

(133433,)

这让我感到困惑,因为 dtype 暗示它是列感知的。此外,它可以直观地访问:

我也收到错误

无法使用灵活类型执行 reduce

在 .all() 之类的操作上,即使与数字列一起使用也是如此。我不确定我是否真的在使用类似表格的实体(二维)或只是一个列表。为什么dtype与形状不一致?

0 投票
1 回答
1020 浏览

numpy - 从 numpy recarray 中选择列

我有一个numpy.core.records.recarray 类型的对象。我想有效地将​​它用作熊猫数据框。更准确地说,我想使用它的列的一个子集来获得一个新的recarray,就像你做的一样pandas_dataframe[[selected_columns]]

实现这一目标的最简单方法是什么?

0 投票
1 回答
302 浏览

python - numpy recarray 上的高效 GROUP BY 查询

我有一个包含 6 列的产品购买日志数据集: purchase_date、user_address、user_id、product_id、brand_id、retailer_id。所有都包含整数,除了 user_address 是一个字符串。

我需要获得在整个数据集中销售最多商品的前 5 个品牌,即数据中条目最多的品牌。

在 SQL 中,我相信它会如下所示(如果我错了,请纠正我):

我尝试在 python 中使用 numpy recarray 执行此操作,如下所示:

它可以工作,除了在大约 12000 个不同品牌的约 100000 行数据集上运行大约需要 15 秒,这似乎太长了。for 循环是最耗时的。

通过使用 numpy 的 recarray 查询方法,是否有更优雅和有效的方法来做到这一点?

谢谢你的帮助!

0 投票
1 回答
93 浏览

python - 继承自 numpy.recarray,__unicode__ 问题

我已经创建了一个 numpy.recarray 的子类。该类的目的是为记录数组提供漂亮的打印,同时保持记录数组的功能。

这是代码:

这是它的打印方式:

但是当我只打印一行时这不起作用:

它适用于多行:

经进一步调查:

如何使 TableView 的 numpy.record 具有相同的unicode

0 投票
2 回答
368 浏览

python - 将二维数组(字段)添加到 numpy recarray

我想使用numpy.lib.recfunctions.append_fields. 假设我做了一个rearray。

我想添加一个字段,使 arr 看起来像:

我不确定将什么传递给 dtypes= 参数。我尝试了 dtypes =np.dtype("f8",(3,)) 没有成功。

或者,如果我传递一个元素列表,我会得到另一个错误。

我想要一个 的形状(10,3),但我只能得到(10,)(10,3,3)

0 投票
1 回答
434 浏览

numpy - 删除对象数据类型的重新数组中具有 nan 值的行

这是我的输入:

我想要这个作为输出:

我试过了:

但它不起作用。

给出所需的输出。

为什么这种方法不起作用np.NaN?如何删除包含np.NaN对象数据类型的重新数组中的值的行?此外,~np.isnan()不适用于对象数据类型。

0 投票
1 回答
135 浏览

object - 对象数据类型的recarray中值的计数频率

这是我的输入:

我想计算变量采用的每个值的频率,并且我希望输出看起来像(比如输入freq('A')):

我已经尝试过np.bincounts(),但显然它不适用于对象数据类型。有没有办法使用 NumPy 来实现这一点?

0 投票
1 回答
869 浏览

numpy - 使用 itertools.groupby() 和 recarray 的频率计数

代码是这样的:

在重新索引和 fillna(0) 之后,它给出了以下结果:

我想对 recarray 做同样的事情,所以我导入了 itertools 并尝试了以下操作:

它不起作用。如何在不使用 pandas 的情况下获得类似的结果?

0 投票
1 回答
655 浏览

python-2.7 - numpy recarray append_fields:不能附加日期时间的numpy数组

我有一个包含各种字段的recarray,我想在其上附加一个日期时间对象数组。

但是,似乎append_fields函数numpy.lib.recfunctions不允许我添加对象数组。

这是一些示例代码:

我不断收到错误TypeError: Cannot change data-type for object array.

这似乎只是 np.object 数组的问题,因为我可以附加其他字段。我错过了什么吗?

0 投票
2 回答
89 浏览

python-3.x - 在稳定的 NumPy 中复制 sub-recarray

假设我在 a 中有数据numpy.recarray,并且我想提取其中的一些列。我希望这是一个有效的副本,因为数据可能很大(我不想复制所有内容),但我可能会更改这些功能而不想更改data(我不想要视图)。

今天,我将执行以下操作:

然而,它FutureWarning从 NumPy 中提出了以下几点:

/path/to/numpy/core/records.py:513:FutureWarning:Numpy 检测到您可能正在查看或写入通过选择结构化数组中的多个字段返回的数组。

此代码可能会在 numpy 1.15 中中断,因为这将返回视图而不是副本——有关详细信息,请参阅发行说明。

返回 obj.view(dtype=(self.dtype.type, obj.dtype))

这个警告非常受欢迎,因为我不想在更新 NumPy 时进行重大更改。但是,即使浏览了发行说明,也不清楚什么是最好的解决方案来编写实现这种复制行为的东西,同时提取今天的列,并且在即将发布的版本中保持稳定。

在我的特殊情况下,需要接近最佳的效率,而 Pandas 不可用。在这些情况下,这种情况的最佳解决方法是什么?