问题标签 [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.
python - 访问结构化数组中的元素时出错
1我目前正在使用结构化数组来保存传感器的一些测量值。数组(名为“data”)的维度为 2000x3,包含三个字段:“samples”、“timestamp”和“labels”,其中 samples 是 6 个元素的向量。例如,一行如下所示:
如果我现在想拥有一行的所有样本,我可以像这样访问该行:
效果很好,但如果我把它转过来写成这样:
我收到以下错误:
ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
有谁知道为什么会这样?
编辑:为了更好地理解这里是“数据”数组的前 10 行:
编辑 2:我使用的是 numpy 版本 1.10.4
我实际上并没有使用
但我试过了,它也不起作用。我这样使用它:
我做了一个我能想到的最基本的例子,它的效果令人惊讶:
我做了一个我能想到的最基本的例子,它的效果令人惊讶:
numpy - 结构化掩码数组上的高级索引何时*真的*返回副本?
当我有一个带有布尔索引的结构化掩码数组时,在什么情况下可以获得视图以及何时获得副本?文档说高级索引总是返回一个副本,但这不是真的,因为X[X>0]=42
技术上高级索引之类的东西,但分配有效。我的情况比较复杂:
我想根据另一个字段的标准设置特定字段的掩码,因此我需要获取该字段,应用布尔索引并获取掩码。有3个!= 6 次这样做。
准备:
字段 - 索引 - 掩码(失败):
/li>索引 - 字段 - 掩码(失败):
/li>索引 - 掩码 - 字段(失败):
/li>掩码 - 索引 - 字段(失败):
/li>字段 - 掩码 - 索引(成功):
/li>掩码 - 字段 - 索引(成功):
/li>
所以,看起来索引必须排在最后。
python - 用 numpy 结构化数组填充空 DataFrame
DataFrame
我通过执行以下操作创建了一个空:
现在我正在尝试使用 a 更改前 4 行的数据numpy
structured array
:
有没有不同的方法来实现这一点?
如果我填写以下DataFrame
视图,这将部分起作用structured array
:
但正如您所见,f0
和f2
列现在为 0,因为整数 1 被强制为浮点数。
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
.
python - 更改 numpy 结构化数组 dtype 名称和格式
我正在用 numpy 中的结构化数组做一些工作(我最终将转换为 pandas 数据框)。
现在,我通过读取一些数据(实际上是对一些数据进行映射)然后通过用户指定的约束对其进行过滤来生成这个结构化数组。然后我想将这些数据从我读取它的形式(所有内容都是一个 int 以节省我从中读取它的文件中的空间)转换为更可用的格式,以便我可以进行一些单位转换(即将它上转换为一个浮子)。
在更改结构化数据类型的过程中,我注意到一个有趣的工件(或其他东西)。假设读取数据会产生与以下创建的相同的结构化数组(请注意,在实际代码中,dtype 更长且更复杂,但这对于 mwe 来说已经足够了):
这创造了
作为结构化数组
现在,假设我想将这两个 dtype 上转换为 double,同时重命名第二个组件。这似乎应该很容易
但结果出乎意料
第二个组件的数据发生了什么变化?我们可以进行这种转换,但是如果我们把事情分开
这导致正确的输出
看来,当astype
用结构化的dtype调用时,numpy会匹配每个组件的名称,然后将指定的类型应用于内容(这里只是猜测,没有看源代码)。无论如何要一次完成所有转换(即格式的名称和上转换)还是只需要按步骤完成。(如果需要分步完成,这并不是什么大不了的事,但我觉得奇怪的是,没有一个单一的步骤可以做到这一点。)
c - 结构数组的C编程FILE输出
使用以下输入运行代码后,会发生运行时错误:
我需要帮助来解决这个问题。
以前,我将 & 符号 /& 放在:
一个有趣的数字出来了:
代码:
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.
python - NumPy 结构化数组的真正递归`tolist()`
据我了解,将 NumPy 数组转换为本机 Python 列表的推荐方法是使用ndarray.tolist
.
唉,这在使用结构化数组时似乎无法递归工作。事实上,一些ndarray
对象在结果列表中被引用,未转换:
我确实编写了一个简单的函数来解决这个问题:
使用时,它提供了预期的结果:
这个函数的问题是它ndarray.tolist
通过重新创建它输出的每个列表/元组来重复工作。不是最优的。
所以问题是:
- 这种行为是
ndarray.tolist
可以预期的吗? - 有没有更好的方法来实现这一点?
python - numpy 数组作为结构化数组中的数据类型?
我想知道是否可以将 numpy.array 作为结构化数组中的数据类型。这是这样的想法:
我有一个由整数和数组组成的元组列表,并希望将其转换为结构化数组。现在,Python 抱怨它不理解“numpy.array”数据类型。还有另一种引用数组数据类型的方法吗?
背后的动机是能够做以下事情:
和其他操作。
python - 命名数组中 numpy 高级切片的意外行为
使用 numpy 命名数组时,我在以下两种情况下观察到不同的行为:
- 案例:首先使用索引数组进行高级切片,然后按名称选择子数组
- 案例:首先按名称选择子数组,然后使用索引数组进行高级切片
以下代码提供了一个示例
两个打印命令的输出是 [1. 1. 1. 1. 1.] 和 [1. 22. 1. 22. 22.]。为什么在设置元素时更改选择的顺序会导致不同的结果?