【问题标题】:Trouble using Numpy genfromtxt使用 Numpy genfromtxt 时遇到问题
【发布时间】:2018-06-10 16:51:12
【问题描述】:

您好,我想处理一个数据文本文件,但我的代码似乎有很多问题。文本文件如下

-7                        -9.000000000000002       -3                       622.0582425616101
-6.500000000000001        -9.000000000000002       -3                       622.1498719223513
-6                        -9.000000000000002       -3                       622.2415012830924
-5.5                      -9.000000000000002       -3                       622.3331306438334
-5                        -9.000000000000002       -3                       622.3591843760928
-4.500000000000001        -9.000000000000002       -3                       622.374656812196
-4                        -9.000000000000002       -3                       622.3901292482993
-3.5                      -9.000000000000002       -3                       622.4169574709064

但是有些行中存在 Nan 值,例如

6.500000000000001         0                        0.5                      NaN
7                         0                        0.5                      NaN
7.5                       0                        0.5                      NaN
8                         0                        0.5                      NaN
8.5                       0                        0.5                      NaN
9.000000000000002         0                        0.5                      NaN
9.5                       0                        0.5                      NaN
10                        0                        0.5                      NaN
10.5                      0                        0.5                      NaN
11                        0                        0.5                      NaN

文本文件只是 XYZ 坐标和相应的温度。我打算主要关注最后一列,即温度,并且有两种不同的数据类型,即“值”和“南”。我已经尝试了很多次 genfromtxt 的迭代,但我仍然不断收到很多错误。我希望对最后一列做的基本上是打印最大温度、平均温度、梯度等。有人可以帮我写代码,因为我对编程真的很陌生,不知道该怎么做。非常感谢任何帮助。

到目前为止,这是我拥有的代码

import numpy as np 



data = np.genfromtxt('C:\\Users\\loges\\OneDrive\\Documents\\School\\ME4101A FYP\\temperature600.txt',
             skip_header=0, skip_footer=1,dtype=None)


print("Max Temp :", data.max())

但我的返回结果只显示 nan

Max Temp : nan
[Finished in 0.9s]

我真的希望有人能够帮助我。将不胜感激。

【问题讨论】:

    标签: numpy genfromtxt


    【解决方案1】:

    使用np.nanmax:

    返回数组的最大值或沿轴的最大值,忽略任何 南斯。当遇到所有 NaN 切片时,RuntimeWarning 是 引发并为该切片返回 NaN。

    平均使用np.nanmin

    例子:

    print(np.nanmax(data[:, -1]))
    

    输出:

    622.41695747090637
    

    【讨论】:

    • 嗨,我试过你的方法,但我得到了这个 Max Temp : [ 622.05824256 622.14987192 622.24150128 ..., 81. 81. 81. ] [Finished in 0.9s] 它是否与定义有关使用 genfromtxt 函数的参数?
    • datadtype 是什么? print(data.dtype)
    • dtype 是 float64
    • 您只需要对温度进行操作,即最后一列。请参阅我的更新答案。
    猜你喜欢
    • 2021-03-03
    • 1970-01-01
    • 2023-04-01
    • 2019-04-08
    • 2021-11-11
    • 1970-01-01
    • 2021-12-27
    • 2011-05-22
    • 1970-01-01
    相关资源
    最近更新 更多