问题标签 [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 投票
1 回答
491 浏览

python - 结构数组到 NumPy 结构化数组:来自 ndpointer 的 np.ctypeslib.as_array

我正在尝试调用一个接受指向指针的指针并将其重定向到内部分配的一维数组的 C 函数,沿着这条线:

我正在尝试用 Python 和 NumPy 包装它,并获得一个包装该内部存储器的 NumPy 数组(作为只读)。

我有以下内容:

_call()检查返回值的包装器在哪里。

我得到以下信息:

打电话给as_array(). 我究竟做错了什么?


编辑:我的目标是将数据读取为 NumPy 结构化数组,因为我认为这是在 python 中描述 C 结构数组的最佳方式。

0 投票
1 回答
544 浏览

python - 将 ndarray 与标量相乘:TypeError:无效的类型提升

我试图将 ndarray 中的每一列乘以一个标量。当我尝试这样做时,我得到了错误TypeError: invalid type promotion

我试过使用array.astype(float),但这给出了所有NaNs.

file.csv有许多列标题。例如:

乘以标量后,我想要 newarray['col_a'][20.0, 24.0]

0 投票
1 回答
303 浏览

python - 使用结构化数组在 numpy 数组中命名轴

我一定是犯了某种非常微不足道的错误,但是我正在尝试创建一个带有单个轴名称的结构化数组,例如,我有一个data带有 shape的数组(2, 3, 4),并且我想命名第一个轴以便我可以访问data['a']并且data['b']在这两种情况下都得到(3, 4)成形切片。我试过:

但这似乎将所有数据复制到“a”和“b”中,例如

我尝试指定形状(在 dtype 规范中)应该是(3, 4),但重复数据 12 次以上......我尝试将轴顺序更改为(3, 4, 2),但这没有任何作用。任何帮助表示赞赏!

0 投票
1 回答
167 浏览

python - 如何将python字典列表保存为matlab结构化数组的数组?

我正在尝试创建一个要在 matlab 环境中读取的文件。matlab中的结构是这样的

所以很自然地,我创建了一个包含必填字段的 python 字典并创建了一个列表,然后使用了 savemat。但是,当我在 matlab 中加载时,我只得到单元格数组。我也尝试过使用 ,但问题是并非所有字段都是具有相同形状的数组,例如'firstframe'是一个int。然后当我使用 fromarrays() 但它抱怨因为形状不匹配。

我现在正在尝试将字典转换为结构化数组,但没有找到任何相关内容。并且还尝试创建一个允许数组使用不同形状的 numpy 记录。任何光都非常受欢迎

0 投票
1 回答
73 浏览

python - 如何访问结构化数组的子数组中的特定条目

使用此处给出的示例:

如何仅访问“成绩”数组中位置 0 的成绩?

因为我如何获取特定人的成绩不明确,即因为我可以写

或者

这两者都会给出相同的结果,但我看不到任何方法可以让我只能访问位置 0 的成绩,但对于所有人。有办法吗?

我不能写

或者像这样的一些组合

同上:为什么'grades'字段的形状被声明为'(2,)',而'(2)'、'[2,]'、'[2]'和'2'似乎都是给出相同的结果?

0 投票
2 回答
278 浏览

python - 如何使用重复项加入 numpy 结构化数组

R 用户在这里,我正在尝试我的第一个 Python 项目以利用 Numba。我读过 Numba 与 Numpy 配合得很好,但与 Pandas 配合得不好,所以我试图避免使用 Pandas。我当前的问题实际上与 Numba 无关,但我想提一下它作为我避免使用 Pandas 的原因。

我有两个 Numpy 结构化数组,一个有很多重复。我正在尝试使用“numpy.lib.recfunctions.join_by”函数加入它们,但文档明确指出重复会导致问题。任何人都可以为我的所有重复项推荐任何解决方法吗?

这是一个类似于我的情况的示例:

这 (1) 将比利的“年龄”从 25 岁更改为 75 岁,并且 (2) 为查理和戴夫提供了 999999 的“高级”值。

有人对此功能的重复限制有解决方法吗?提前致谢。

0 投票
1 回答
379 浏览

python - 如何将 np.ceil 应用于结构化的 numpy 数组

我正在尝试在结构化 numpy 数组上使用 np.ceil 函数,但我得到的只是错误消息:

这是该数组的简单示例:

当我尝试

我收到上述错误。当我只使用一列时,它可以工作:

但我需要得到整个数组。除了逐列或不一起使用结构化数组之外,还有其他方法吗?

0 投票
1 回答
4030 浏览

python - 添加和访问 numpy 结构化数组的对象类型字段

我正在使用 numpy 1.16.2。

简而言之,我想知道如何将对象类型字段添加到结构化数组中。通过recfunctions模块的标准方式会引发错误,我想这是有原因的。因此,我想知道我的解决方法是否有任何问题。此外,我想了解为什么这种解决方法是必要的,以及在访问新创建的数组时是否需要格外小心。

现在来详细说明:

我有一个 numpy 结构化数组:

object我想向数组添加另一个类型的字段“测试” a。执行此操作的标准方法是使用 numpy 的recfunctions模块:

此代码引发错误:

这里讨论了一个类似的错误,虽然这个问题很老,我不知道我观察到的行为是否真的是一个错误。在这里我被告知不支持包含一般对象的结构化数组的视图。

因此,我建立了一个解决方法:

这行得通。尽管如此,我有以下问题:

问题

  • 为什么需要这种解决方法?这只是一个错误吗?
  • 使用新数组b似乎与使用a. 该变量c = b[["A", "test"]]显然是对 的数据的一个视图b。那么为什么他们会说不支持阵列上的视图b呢?我必须c格外小心对待吗?
0 投票
2 回答
128 浏览

python - 结构化数组:对视图的操作会导致分散的数组吗?

我有一个 numpy 结构化数组a并在其上创建一个视图b

descr数据类型的组件表示b数据以某种方式“分散”存储。

(阅读文档后,我认为该组件('', '|V4')表示数据中存在“差距”,这b只是对 . 的看法a。)

如果这让我感到困扰,我可以复制数据:

如预期的。

这一步需要我复制数据。现在有时,我想对视图应用一个操作。通常,这些操作无论如何都会返回数组的副本。例如,

b返回和中数据的副本a。尽管如此,

表示数据没有被有效地存储。

那么有没有办法在不产生“分散”结果的情况下处理视图?我总是必须事先创建一个副本吗?还是没有效率问题,只是以一种奇怪的方式descr描述数据类型?(如果是这样,我怎样才能避免这种情况?)

如果我想忽略中间步骤,这个问题就变得特别重要:

我正在使用 numpy 1.16 和 python 3.7。

0 投票
2 回答
231 浏览

python - 如何将元组列表复制到共享内存中的现有 numpy 数组

我在共享内存中有一个结构化的 numpy 数组,它只是高维数组的一个“层”。

我有一个元组列表,我想将其值复制到这个(子)数组中。

我发现了如何从元组列表中创建一个新的 numpy 结构化数组。但我不知道如何将此元组列表转换为 EXISTING numpy(子)数组。当然,尺寸已经匹配。

当然,我可以在 Python for 循环中逐元素复制,但这似乎非常低效。我希望在作为 numpy 基础的 C++ 中完成循环。

说明:我的数组在共享内存中的原因是我将它用作 C++ 进程的通用数据结构,由互斥信号量保护。

我的元组列表如下所示:

我的 numpy 数组的元素定义如下: