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

python - 访问结构化数组中的元素时出错

1我目前正在使用结构化数组来保存传感器的一些测量值。数组(名为“data”)的维度为 2000x3,包含三个字段:“samples”、“timestamp”和“labels”,其中 samples 是 6 个元素的向量。例如,一行如下所示:

如果我现在想拥有一行的所有样本,我可以像这样访问该行:

效果很好,但如果我把它转过来写成这样:

我收到以下错误:

ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()

有谁知道为什么会这样?

编辑:为了更好地理解这里是“数据”数组的前 10 行:

编辑 2:我使用的是 numpy 版本 1.10.4

我实际上并没有使用

但我试过了,它也不起作用。我这样使用它:

我做了一个我能想到的最基本的例子,它的效果令人惊讶:

我做了一个我能想到的最基本的例子,它的效果令人惊讶:

0 投票
2 回答
138 浏览

numpy - 结构化掩码数组上的高级索引何时*真的*返回副本?

当我有一个带有布尔索引的结构化掩码数组时,在什么情况下可以获得视图以及何时获得副本?文档说高级索引总是返回一个副本,但这不是真的,因为X[X>0]=42技术上高级索引之类的东西,但分配有效。我的情况比较复杂:

我想根据另一个字段的标准设置特定字段的掩码,因此我需要获取该字段,应用布尔索引并获取掩码。有3个!= 6 次这样做。

准备:

  1. 字段 - 索引 - 掩码(失败):

    /li>
  2. 索引 - 字段 - 掩码(失败):

    /li>
  3. 索引 - 掩码 - 字段(失败):

    /li>
  4. 掩码 - 索引 - 字段(失败):

    /li>
  5. 字段 - 掩码 - 索引(成功):

    /li>
  6. 掩码 - 字段 - 索引(成功):

    /li>

所以,看起来索引必须排在最后

0 投票
1 回答
839 浏览

python - 用 numpy 结构化数组填充空 DataFrame

DataFrame我通过执行以下操作创建了一个空:

现在我正在尝试使用 a 更改前 4 行的数据numpy structured array

有没有不同的方法来实现这一点?

如果我填写以下DataFrame视图,这将部分起作用structured array

但正如您所见,f0f2列现在为 0,因为整数 1 被强制为浮点数。

0 投票
0 回答
305 浏览

python - 使用 numpy 结构化数组初始化时,pandas DataFrame 非常慢

我有一个numpy structured array具有整数和浮点数的 a ,我用它来初始化 a pandas DataFrame

从上面的代码可以看出,DataFrame用 a初始化structured array是很慢的。但是,如果我将数据更改为连续的浮点 numpy 数组,它会很快。但我仍然需要DataFrame混合浮点数和整数。

经过更多测试后,我意识到 DataFrame 实际上是在复制整个数据(使用浮动视图进行初始化structured array时不会发生这种情况)。structured array我在这里找到了更多信息:https ://github.com/pydata/pandas/issues/9216

有没有办法加快初始化并避免复制?我对替代方法持开放态度,但数据来自structured array.

0 投票
2 回答
5108 浏览

python - 更改 numpy 结构化数组 dtype 名称和格式

我正在用 numpy 中的结构化数组做一些工作(我最终将转换为 pandas 数据框)。

现在,我通过读取一些数据(实际上是对一些数据进行映射)然后通过用户指定的约束对其进行过滤来生成这个结构化数组。然后我想将这些数据从我读取它的形式(所有内容都是一个 int 以节省我从中读取它的文件中的空间)转换为更可用的格式,以便我可以进行一些单位转换(即将它上转换为一个浮子)。

在更改结构化数据类型的过程中,我注意到一个有趣的工件(或其他东西)。假设读取数据会产生与以下创建的相同的结构化数组(请注意,在实际代码中,dtype 更长且更复杂,但这对于 mwe 来说已经足够了):

这创造了

作为结构化数组

现在,假设我想将这两个 dtype 上转换为 double,同时重命名第二个组件。这似乎应该很容易

但结果出乎意料

第二个组件的数据发生了什么变化?我们可以进行这种转换,但是如果我们把事情分开

这导致正确的输出

看来,当astype用结构化的dtype调用时,numpy会匹配每个组件的名称,然后将指定的类型应用于内容(这里只是猜测,没有看源代码)。无论如何要一次完成所有转换(即格式的名称和上转换)还是只需要按步骤完成。(如果需要分步完成,这并不是什么大不了的事,但我觉得奇怪的是,没有一个单一的步骤可以做到这一点。)

0 投票
3 回答
53 浏览

c - 结构数组的C编程FILE输出

使用以下输入运行代码后,会发生运行时错误:

我需要帮助来解决这个问题。

以前,我将 & 符号 /& 放在:

一个有趣的数字出来了:

代码:

0 投票
1 回答
84 浏览

python - Splitting numpy array field values that are matrices into column vectors

I have the following numpy structured array:

As you can see, field 'f4' is a matrix:

My end goal is to have a numpy structured array that only has vectors. I was wondering how to split 'f4' into two fields ('f41' and 'f42') where each field represents the column of the matrix.

Also i was wondering if it was possible to achieve this while using operations that modify the array in place or with minimal copying of the original data.

0 投票
1 回答
1974 浏览

python - NumPy 结构化数组的真正递归`tolist()`

据我了解,将 NumPy 数组转换为本机 Python 列表的推荐方法是使用ndarray.tolist.

唉,这在使用结构化数组时似乎无法递归工作。事实上,一些ndarray对象在结果列表中被引用,未转换:

我确实编写了一个简单的函数来解决这个问题:

使用时,它提供了预期的结果:

这个函数的问题是它ndarray.tolist通过重新创建它输出的每个列表/元组来重复工作。不是最优的。

所以问题是:

  • 这种行为是ndarray.tolist可以预期的吗?
  • 有没有更好的方法来实现这一点?
0 投票
1 回答
426 浏览

python - numpy 数组作为结构化数组中的数据类型?

我想知道是否可以将 numpy.array 作为结构化数组中的数据类型。这是这样的想法:

我有一个由整数和数组组成的元组列表,并希望将其转换为结构化数组。现在,Python 抱怨它不理解“numpy.array”数据类型。还有另一种引用数组数据类型的方法吗?

背后的动机是能够做以下事情:

和其他操作。

0 投票
1 回答
67 浏览

python - 命名数组中 numpy 高级切片的意外行为

使用 numpy 命名数组时,我在以下两种情况下观察到不同的行为:

  1. 案例:首先使用索引数组进行高级切片,然后按名称选择子数组
  2. 案例:首先按名称选择子数组,然后使用索引数组进行高级切片

以下代码提供了一个示例

两个打印命令的输出是 [1. 1. 1. 1. 1.] 和 [1. 22. 1. 22. 22.]。为什么在设置元素时更改选择的顺序会导致不同的结果?