问题标签 [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 - NumPy 中结构化数组组的包含测试
给定一个 ndarray 元组和一个参考数据列表,我正在寻找一种有效的方法来生成一个 ( numpy.isin
) 映射 groupby 每个元组的第一个元素的列表的 ndarray。请参见以下示例
initial_list
是一个ndarray输入np.loadtxt
:
预期输出:
我知道我可以通过纯 Python 迭代来实现这一点。内置 NumPy 有什么有效的方法吗?类似于熊猫数据框groupby
功能的东西。我的目标是未来的 Jaccard 指数计算。
Python迭代方法:
非常感谢提前
python - 在 1.16.0 中破坏了结构化到非结构化 numpy 数组的转换
我想将具有相同(np.float)类型的列的 NumPy 结构化数组转换为 Numpy 1.16.0 中的非结构化数组。
以前我是这样做的:
在 1.16.0 中,structured_to_unstructured
函数出现在numpy.lib.recfunctions
.
但是对于具有对象列的数组的视图structured_to_unstructured
,新旧视图方式都会抛出 TypeError:
Cannot change data-type for object array.
对于完全没有对象列的结构化数组中的视图,它可以正常工作,但是如果视图中只有由包含对象字段的数组组成的数字列,则会崩溃。
python - 如何从保存为不同类型的recarray的hdf5(h5py)读取数据?
我正在尝试从 hdf5 文件中读取数据 - 我之前使用 recarray 保存到它。一行数据的类型如下:2x u2(flags) 后跟 2x u4(timestamps) 和 32x u2(data)。
现在我想逐行迭代这个文件的一部分(数据部分 - 最后 32 列),并能够像通常的 numpy.array 一样处理它。
这是有效的,但非常缓慢。我正在寻找一种正确的方法来执行此操作,因为我将处理大数据文件。我也试图弄乱这个:(self.dataset 是从文件加载的 h5py 数据集)
但是当我尝试将 [data_{0}".format(i) for i in range(32)] 代替't0','t1'时它失败了。
我做了几次尝试将数据解析为结构化数组,但到目前为止没有运气。
我应该如何正确尝试阅读过程?我应该更改访问顺序(行前的列)还是有办法在读取行后将这些数据解析为正确的类型?
更新我得到了一些帮助,结果是这样的:我的代码中这么慢的不是为每一行创建列表和解析为 numpy 数组。访问 h5py 文件中的数据是。所以最好一次访问它并一次解析它们。
一旦我使用了该代码,代码的速度几乎提高了 1000 倍。
python - 从文件构造结构化的numpy数组?
我的任务是在 python 中编写一个简单的 MD-Simulation 程序,它不使用 python 内置类型(dict,list),而只使用 numpy 数组。据我了解,这允许编译代码以更快地运行。在我的代码中的某一时刻,我想从一个类似字典的对象中获取原子的质量,该对象可以通过元素名称(如MassDict['N'] = 14.0067
.
根据我的阅读,我需要使用结构化的 numpy 数组。我现在要做的是使用以下表格打开我的文件:
然后构造一个结构化的numpy数组,可以使用第一列中的元素名称对其进行切片。
我尝试制作两个 numpy 数组,然后将它们连接起来,但这似乎不是我需要的。我的代码一开始看起来并不那么好。那么如何创建一个 numpy 对象,该对象可以最佳地从文本文件中按字符串切片?这是我的代码:
python - 如何返回每个字段/列只有一个值的结构化数组?
我正在尝试构建一个结构化的 numpy 数组,其中包含两个值、一个分数和一个置信度,它们都是浮点数。永远不会有多个分数和多个置信度作为输出,每个只有一个。
但是输出看起来像array([[(0.9 , 0.9 )], [(0.95, 0.95)]], dtype=[('score', '<f8'), ('confidence', '<f8')])
.
我不明白为什么它会翻倍。理想情况下,这会返回类似array([(0.9, 0.95)], dtype=[('score', '<f8'), ('confidence', '<f8')])
. 此外,可能没有计算分数和置信度,在这种情况下,我也应该能够返回具有相同形状的结构化数组,只是它是空的。您对如何解决我正在做的事情有任何想法,以便解决我讨论的空和非空情况吗?谢谢!
python - 使用 numpy 结构化数组而不是 dict 来节省空间并保持速度
numpy
结构化数组是 Python 的替代品吗dict
?
我想节省内存,但我无法承受性能下降太多。
就我而言,键是str
,值是int
。
如果它们实际上是替代品,你能给出一个快速的转换线吗?
我也不介意您是否可以提出不同的选择。
我需要节省内存,因为某些字典的内存大于 50Gb,我需要一次打开多个字典,并且“只有”192 GB RAM 可用。
python - 用结构化字符串的内容填充结构化数组的比这更 Pythonic(更短/更有效)的方式?
我需要将格式化的字符串放入结构化数组(字符串是 JSON 格式的 2D 表,所有列都是objects
)。现在,我这样做:
但这似乎非常冗长。有直接的方法吗?
python - 如何获得一个名为前两个维度的 3 维数组
我正在使用 Python 3 中的 numpy 库。我想要一个 3 维数组,其中前两个维被命名。
我创建了一个 3 维数组。我想像这样访问数组
我不知道这是否可能。
这是我所做的:
谢谢!
python - 如何在 numba 中创建结构化标量列表?
错误信息是
没有@jit 它可以正常工作。
我真正想要实现的是创建一个自定义 dtype 标量列表。我尝试了以下替代方案:
- numpy 数组不适合,因为事先不知道元素的数量,
- 一个 numpy 向量列表需要太多的数字索引,这是我试图避免的
- dicts 列表(据说)占用太多内存
- 与上面列出的任何其他变体相比,一个 numpy 的 jited 类数组太慢了。
更新: 到目前为止我能得到的最远点是:
但它不是一个标量,它是一个大小为 1 的数组(有或没有 @jit)。
更新2:
Recfunctions 还没有被 numba 覆盖。
python - 如何构建具有 2 个 int 列和 3 个 float 列的 numpy 结构化数组?
我有一个 5 元组列表的数据。前两个是整数索引i, j
,接下来三个是浮点数xyz
。
我听说我可以做类似的事情
所以我可以将数组的最后三列作为二维浮点数组访问。例如得到 r = sqrt(x^2 + y^2 + z^2) 我应该可以说
并得到结果
同样的方式
但我尝试过的一切都会导致错误消息
ValueError:无法将长度为 5 的元组分配给具有 2 个字段的结构。
我查看了https://docs.scipy.org/doc/numpy/user/basics.rec.html但如果我的尝试失败的答案在那里,我没有看到它。