小编J W*_*J W的帖子

在python中读取二进制数据

首先,在此问题被标记为重复之前,我知道其他人已经提出类似的问题,但似乎没有明确的解释.我正在尝试将二进制文件读入二维数组(在此处有详细记录http://nsidc.org/data/docs/daac/nsidc0051_gsfc_seaice.gd.html).

标头是一个300字节的数组.

到目前为止,我有;

import struct

with open("nt_197912_n07_v1.1_n.bin",mode='rb') as file:
    filecontent = file.read()

x = struct.unpack("iiii",filecontent[:300])
Run Code Online (Sandbox Code Playgroud)

抛出字符串参数长度的错误.

python binary file

7
推荐指数
1
解决办法
2269
查看次数

图上的孵化频率

假设我有以下脚本生成一个图(如下所示),其中一些数据点有阴影线.在DPI = 200时,阴影频率(点之间的空间)是好的,但是如果我想增加绘图的分辨率(例如DPI = 600),则点变得非常精细.有没有办法设置点之间的差距?提前致谢.

import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap


Sig = np.random.rand(50,50)
Sig = np.ma.masked_greater(Sig, 0.25)

f, ax1 = plt.subplots(1,1)

ax1.pcolor(np.linspace(0,90,50),np.linspace(0,50,50),Sig, hatch=".",alpha=0)

fig = plt.gcf()
fig.set_size_inches(8, 8)
fig.savefig('Trial.png',bbox_inches='tight', dpi=200)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python plot numpy matplotlib

2
推荐指数
1
解决办法
380
查看次数

NetCDF大数据

我需要将大(+ 15GB)NetCDF文件读入一个程序,该程序包含一个3D变量(等时间作为记录维度,数据是纬度经度).

我正在以3级嵌套循环处理数据(如果NetCDF通过某个标准,则检查NetCDF的每个块.例如;

from netCDF4 import Dataset                   
import numpy as np

File = Dataset('Somebigfile.nc', 'r')
Data = File.variables['Wind'][:]

Getdimensions = np.shape(Data)
Time = Getdimensions[0]
Latdim  = Getdimensions[1]
Longdim = Getdimensions[2]

for t in range(0,Time):
    for i in range(0,Latdim):
        for j in range(0,Longdim):

            if Data[t,i,j] > Somethreshold:
                #Do something
Run Code Online (Sandbox Code Playgroud)

无论如何,我一次可以在NetCDF文件中读取一次记录吗?大大减少内存使用量.任何帮助非常感谢.

我知道NCO运算符,但在使用脚本之前不希望使用这些方法来分解文件.

python bigdata netcdf

1
推荐指数
1
解决办法
362
查看次数

对充满 nan 的 numpy 数组求和时出现意外的 nan 行为

这是一个有趣的话题,因为它可能会导致代码中出现意外结果。假设我有一个如下数组;

import numpy as np

X = np.array([np.nan,np.nan,np.nan,np.nan,np.nan])
Run Code Online (Sandbox Code Playgroud)

np.nanmean(X)正确返回平均切片为空的警告并返回 nan。但是,在对数组求和时np.nansum(X),返回0.0。现在虽然数学上正确(无之和为 0),但预期返回的结果可能是 np.nan。

例如,我有一个函数,如果不存在冰数据文件,它将创建一个空的 nan 数组(180x360 点,每个点代表一个纬度/经度)。然后将此数组传递给一个函数,该函数对数组求和以找出数组中的冰总量。如果预期值为 9-1000 万平方公里,而 nansum 返回 0,这可能会产生误导。如果冰范围无论如何都在 0 左右,这将特别困难。在下图中,这显然是导致冰总和为 0.0 的缺失数据文件,但并非所有情况都如此清晰。

在此处输入图片说明

我在开发网站上看到了这个讨论,想知道为什么没有 kwarg 选项可以在np.nansum()需要时返回 np.nan,并且 B,如果整个矩阵充满了,是否有一个函数返回 True/False楠?

python arrays math numpy nan

-1
推荐指数
1
解决办法
5779
查看次数

标签 统计

python ×4

numpy ×2

arrays ×1

bigdata ×1

binary ×1

file ×1

math ×1

matplotlib ×1

nan ×1

netcdf ×1

plot ×1