问题标签 [structured-array]

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 投票
2 回答
647 浏览

python - 如何按列存储在结构化 numpy 数组中

我有一个看起来像这样的元组列表:

etc.y有 7 个元组,每个元组有 10,000 个值。给定元组的所有 10,000 个值都是相同的 dtype,我也有这些 dtype 的列表:

我的意图是做类似的事情x = np.array(y, dtype=dt),但是当我这样做时,我收到以下错误:

我知道这是因为 dtype 说元组中的第一个值必须是 int64,第二个值必须是字符串,依此类推,而对于具有 10,000 个值的元组,我只有 7 个 dtype。

我如何与代码沟通,我的意思是第一个元组的所有值都是 int64s,第二个元组的所有值都是字符串,等等?

我也尝试过y成为列表列表而不是元组列表:

等,由于与上述相同的原因,我收到错误:

任何帮助表示赞赏!

编辑:我的目标是让 x 成为一个 numpy 数组。

0 投票
2 回答
29 浏览

php - 以优雅的方式基于关键结果抓取中间的 x 结果

我有一套产品。根据页面的状态,我显示了一种产品,然后显示了最多 4 种其他产品。产品的结果集可以是大于 5 个产品的任何大小。我想总是展示 5 个产品。如果可用,我想显示下面的 2 个产品(在结果集中)和上面的 2 个产品。

例子:

如果有 10 个结果并且关键产品是 5。我想显示 3、4、5、6、7。

如果有 10 个结果并且关键产品是 9。我想显示 6、7、8、9、10。

如果有 10 个结果并且关键产品是 1。我想显示 1、2、3、4、5。

现在我正在使用 min() 和 max() 以及一些“IF”来解决它,它需要大量的代码行,当有一个优雅的解决方案时,我只是找不到它!下面的示例数组结果集

0 投票
1 回答
214 浏览

performance - Numpy 结构化数组性能

我有一个查找问题,归结为以下情况。三列正整数。对于某个值i,哪些值'column_3''column_1'下面i'column_2'上面的值i

这是我要优化的操作:

有什么我忽略的东西可以使这更快吗?将不胜感激任何建议!

0 投票
3 回答
4874 浏览

python - 使用带有标题的 np.savetxt 保存结构化的 numpy 数组

我有一个结构数组,形式为

然后我尝试使用 np.savetxt 将其保存到 csv 文件中。我想知道是否有办法也可以将每列的标签保存为 csv 文件的标题?

先感谢您。

0 投票
1 回答
94 浏览

python - 更改结构化数组和重新数组的打印方式

Numpy 总结了 large arrays,在交互式会话中工作时很方便。不幸的是,结构化arrays并且recarrays默认情况下没有很好地总结。有没有办法改变这个?

默认情况下,array如果有 1000 个或更少的项目,则会显示完整。当有比这更多的项目时,将array被汇总。这可以用 设置np.set_printoptions(threshold=<number of items to trigger summarization>, edgeitems=<number of items to show in summary>)。这适用于标准数据类型,例如:

结果是

然而,当使用更复杂的数据类型时,总结的帮助就更少了

数组已汇总,但子数据类型未汇总。这成为arrays使用复杂数据类型的大问题。例如array np.zeros(1000, dtype=[('a', float, 3000), ('b', float, 10000)])挂断我的 ipython 实例。

有几种解决方法,而不是np.array直接使用类型,可以继承并编写自定义__repr__. 这适用于大型项目,但不能解决根本问题,也不便于在交互式 python 会话中快速探索数据。我还在我的编辑器中实现了一个自定义过滤器,它会截断很长的控制台输出。这有点小技巧,当我在其他地方启动 python 会话时没有帮助。

是否有我不知道的 numpy 设置,或者可以解决此问题的 python 或 ipython 设置?

0 投票
1 回答
600 浏览

python - numpy结构化数组中的子数组不是c连续的

我目前尝试将大量数组打包到 numpy 结构化数组中。根据numpy 文档

子数组始终具有 C 连续内存布局。

但是,如果我创建一个结构化数组:

尽管

并使用数组的“外部”形状(1,)产生:

省略(1,)产生ndim=1具有 c 连续性的数组。所以报价似乎是 True仅适用于结构化数组的行

让我感到困惑的是,当我直接为每个子数组指定数组形状时,会给出连续性:

从 numpy 文档的引用中,我认为子数组始终具有 C 连续内存布局,但这似乎仅适用于行或给定每个数组的形状时。
这种行为从何而来?正在定义“外部”形状(我不知道如何称呼它......)告诉numpy制作子数组的逐行子数组,同时为每个子数组指定形状直接连续存储每个子-大批?
当所有子数组的第一个维度相等而第二个维度不相等时,最好的处理方法是什么?我应该直接指定每个形状以保持它们连续吗?

0 投票
1 回答
34 浏览

python - How to find the `base` of a record array

How is base determined for record arrays? The docs seem to describe the same behavior as regular arrays, but that's not what it is. Here's a simple array, and a record array created from it.

The base of the record array is correctly set

The base is correctly set for field accesses of the regular array.

However, for the record array I can't determine what the base is. It's not the regular array, the record array, None, or anything else that I've tried.

It behaves as expected for indexing slices

And it definitely still points to the same memory

So, how can the actual base of a record array be found?

0 投票
2 回答
336 浏览

python - 将结构化 numpy 数组中的数据组合和聚合到另一个数组

我有一个空的结构化数组:

我有另一个结构化数组,其中包含要填充的数据id_and_orders

我现在想做的是将每个orders['value']与其对应id的 in映射id_and_orders。以某种方式id_and_orders包含orders['id']该 id 的值的子数组orders

也许有些人会知道如何id_and_orders['order_values']动态构建子数组的大小,而不是固定大小为 100。

0 投票
1 回答
376 浏览

python - 如何从数据文件中导入一个 numpy 结构化数组

我正在尝试创建一个数组,其中包含从数据文件导入的 5 列。其中 4 个是浮点数和最后一个字符串。

数据文件如下所示:

我试过这些:

,但两个代码都只导入第一列。

为什么?我怎样才能解决这个问题?

你的时间!:)

0 投票
1 回答
515 浏览

python - 当作为参数传递给函数时,获取 numpy 结构化数组列的名称

当尝试使用 numpy.array(结构化的 numpy 数组)时,我知道我可以通过执行类似数组 [“col”] 的操作来拉出一列。据我了解,这是因为 numpy.dtype.names 和结构化数组的性质。但是,当将所述数组传递给函数时,使用 numpy.dtype.name 时我没有得到列名,我得到类似“strxxx”的东西。如果有帮助的话,这个特定的数组是使用 numpy.genfromtxt() 和一个 csv 文件创建的。例如,下面的代码

结果是:

有人知道为什么出现 str544 而不是列名吗?

设置 Python 3.7.0 numpy 1.15.4 IDE:PyCharm 2018.3