gpt4 book ai didi

python - 使用 python netCDF4 将多字符字符串转换为 netcdf

转载 作者:行者123 更新时间:2023-12-01 05:13:11 36 4
gpt4 key购买 nike

下面的最小示例显示了我如何尝试将字符串写入 netcdf 文件。单字符串按预期工作 (var1)。但是,在多字符串 (var2) 中,仅考虑第一个字符。

from netCDF4 import Dataset

strs1 = ['a', 'b']
strs2 = ['aa', 'bb']

ds = Dataset('test.nc','w')
ds.createDimension('x', 2)
var1 = ds.createVariable('var1', 'S1', (u'x',))
var1[:] = strs1
print strs1,var1[:]
var2 = ds.createVariable('var2', 'S1', (u'x',))
var2[:] = strs2
print strs2,var2[:]
ds.close()

输出看起来像这样

['a', 'b'] ['a' 'b']
['aa', 'bb'] ['a' 'b']

我尝试添加第二个维度,但这也没有给出所需的结果。有人能解决这个问题吗?

编辑:使用第一个答案,我可以使用第二个维度使其按如下方式工作

import netCDF4
import numpy as np

strs1 = ['a', 'b']
strs2 = ['aa', 'bb']

ds = netCDF4.Dataset('test.nc','w')
ds.createDimension('x', 2)
ds.createDimension('strlen', 2)
var1 = ds.createVariable('var1', 'S1', (u'x',))
var1[:] = strs1
print strs1,var1[:]
var2 = ds.createVariable('var2', 'S1', (u'x',u'strlen'))
var2[:] = netCDF4.stringtochar(np.array(strs2))
print strs2,netCDF4.chartostring(var2[:])
ds.close()

给出这个输出:

['a', 'b'] ['a' 'b']
['aa', 'bb'] ['aa' 'bb']

最佳答案

我是 netCDF4 的新手,但在处理字符串时,我使用了 netCDF4 实用方法 netCDF4.stringtochar(strs2) 和 netCDF.chartostring(strs2)

关于python - 使用 python netCDF4 将多字符字符串转换为 netcdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780324/

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