在第一列中基于未知的相同值对numpy数组进行切片的有效方法

碧玉

我有一个大约10GB的相对较大的数据文件,其中包含三列,看起来像:

X             Y    Z
----          ---- ----
.10000E+05    100  35
.10000E+05    101  45
.             .    .
.             .    .
.             .    .
.10000E+05    400  45
.16730E+05    100  43
.16730E+05    101  25
.             .    .
.             .    .
.             .    .
.16730E+05    400  57
.             .    .
.             .    .
.             .    .
n             100  34
n             101  54
.             .    .
.             .    .
.             .    .
n             400  45

因此,基本上有两个自变量XY一个因变量Z数据NumPy通过以下方式加载到数组中:

data = np.loadtxt('datafile.txt', skiprows = 2)

因此XYZ列对应于data[:,0]data[:,1]data[:,2]分别。X列由公共部分组成,这些部分floats是预先未知的,但是按升序排列(如示例中所示(.10000E+05,.16730E+05,...,n)),我想对它们进行切片,以得到具有公共X值的新数组

如上所述,对这种数组进行切片的有效方法是什么?

我尝试了一种方法,该方法依赖于遍历该X列并检查相邻元素是否相同,但这需要长时间在Python中运行。

丹尼尔

numpy 具有一些功能,可以帮助您完成任务:

borders = data[0,:].searchsorted(numpy.unique(data[0,:]))
part0 = data[borders[0]:borders[1]]

但是我不建议将大型数组拆开,而是borders在需要时使用对其进行索引

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫-在另一列中基于int的str(行)切片

在Golang中旋转切片的有效方法

NumPy数组中连续值的切片

如何通过切片范围有效地索引到一维numpy数组

用另一个数组中的值替换numpy数组的切片

有没有更有效的方法来切片多维数组

将2-d矩阵的每一列乘以3-d矩阵的每个切片的更有效方法

numpy:合并多个切片的有效方法

有效地使用多个块状切片进行随机图像裁剪

使用另一列中的值切片pandas列

如何基于另一列对数据框列进行切片

使用numpy进行有效的矩阵切片

如何根据多个相同的第一列元素切片二维列表

对包含一列数组的Pandas数据框进行条件切片的更快方法

如何对多列进行切片并对熊猫中的另一列进行排序

对列中的值进行切片以为另一列创造条件

获取不同范围内所有numpy切片的有效方法

用不同的方法有效地填充每一列中的缺失值?

从具有数据类型的NumPy数组中切片一列?

从Numpy数组中删除列的有效方法?

基于行条件的Numpy切片数组列

切片一个 numpy 数组以选择列表中具有值的行。真值误差

R 数据框:如何根据另一列中不同值的列值对数据进行切片

切片二维数组和跳过索引的有效方法;重复提取小片段

在这个例子中如何修复“只有整数、切片(`:`)、省略号(`...`)、numpy.newaxis(`None`)和整数或布尔数组是有效索引”

按另一列对一列进行排序的有效方法

使用来自另一个数组的索引有效地切片数组

这是将数组附加到切片的最有效方法吗?

如何更有效地将切片字符串转换为切片对象,然后可用于在 PyTorch / NumPy 中对数组和张量进行切片?