gpt4 book ai didi

相当于 MATLAB 的 'replace unimportable cells with...' 的 python

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:23 26 4
gpt4 key购买 nike

第一次发帖,请文静

与我共事的每个人总是鼓励我从用于​​数据后处理的 MATLAB 切换到 python,因为 [原因]。

生成的数据被输出到一个 .txt 文件中,该文件只是一堆空格分隔的数字,分为几行。

我目前的代码只有这样:

> import numpy
>
> filepath='data.txt'
>
>
>
> with open(filepath) as file:
>
> data=[float(s) for s in file.read().split()]

我认为这应该做的是处理空间描述符,并给我一个包含所有数据的列表。然后我可以使用行数来确定如何将列表重新排列成数组(旁注:我应该只使用 numpy.loadtxt() 来执行此操作吗?)。

唯一的问题是我的 .txt 文件中的一些数字没有正确转换为 float。例如,文件中的大多数数字看起来像这样 "0.900000000E-2",并且可以很好地转换。但是,一些非常小的数字没有以正确的科学记数法书写,而是显示为 "1.23456789-117."。预期的数字当然是 1.23456789E-117

Matlab 在其导入 函数 上有一个内置工具,它用 ____ 替换“不可导入”的单元格,其中 ____ 可以是 NaN0,或任何合适的。在调用将所有 strings 更改为 floats 之前,如何将类似这样的代码编程到导入数据的代码中?

谢谢!

最佳答案

使用numpy.genfromtxt .使用 loose=True(默认),它将用 NaN 填充无效数据:

numpy.genfromtxt(file, loose=True)
# or if you'd rather type less
numpy.genfromtxt(file)

您可以使用 filling_values 参数指定一个值来代替无效数据:

numpy.genfromtxt(file, loose=True, filling_values=0)

要在无效数据上抛出异常,您可以指定loose=False:

numpy.genfromtxt(file, loose=False)

关于相当于 MATLAB 的 'replace unimportable cells with...' 的 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44292354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com