python等价于MATLAB';s';将不重要的单元替换为…';

python等价于MATLAB';s';将不重要的单元替换为…';,python,matlab,numpy,Python,Matlab,Numpy,第一个帖子,请温柔一点 与我一起工作的每个人都鼓励我从MATLAB切换到python,因为[原因] 生成的数据被输出到一个.txt文件中,该文件只是一组以空格分隔的数字,分为几行 我当前的代码是: > import numpy > > filepath='data.txt' > > > > with open(filepath) as file: > > data=[float(s) for s in file.read().

第一个帖子,请温柔一点

与我一起工作的每个人都鼓励我从
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
文件中的一些数字没有正确地转换为
浮点值。例如,文件中的大多数数字看起来像这样的
“0.90000000e-2”
,并且可以很好地转换。但是,一些非常小的数字没有用正确的科学符号书写,显示为
“1.23456789-117”。
预期的数字当然是
1.23456789E-117

Matlab在其import
函数
中有一个内置工具,它用uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。在我调用将所有
字符串
更改为
浮动
之前,如何将这样的内容编程到导入数据的代码中

谢谢

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

numpy.genfromtxt(file, loose=True)
# or if you'd rather type less
numpy.genfromtxt(file)
您可以使用
filling\u values
参数指定一个值来代替无效数据:

numpy.genfromtxt(file, loose=True, filling_values=0)
要对无效数据引发异常,可以指定
loose=False

numpy.genfromtxt(file, loose=False)

非常感谢。效果很好。