pint与numpy连接的用法

时间:2018-02-20 05:58:27

标签: python python-3.x numpy pint

我有这个玩具示例,我正在使用pint和numpy -

import numpy as np

from pint import UnitRegistry

ureg = UnitRegistry()

Q_ = ureg.Quantity

args = []

for k in range(0,17):
   uwnd = Q_(np.ones((1,73,144)),'meter / second')
    args.append(uwnd)
uwndTot = np.vstack(args)
print(uwndTot.shape)
for element in args:
   print(type(element))

uwndTot的形状是

 (17,73,144)

如上所示,args中元素的类型是

<class 'pint.quantity.build_quantity_class.<locals>.Quantity'>

但是如果我按照以下方式打印出uwndTot的类型,我会得到

 for element in uwndTot:
    print(type(element))

我得到了

 <class 'numpy.ndarray'>

所以我无法从这个程序中提取uwnd的单位。这是正确的行为吗?发出呼叫时为什么类型会发生变化

  np.vstack(args)

 np.concatenate(args,axis = 0)

我希望能够使用vstack或连接。还有另外一种方法吗?

更新  我有一堆netCDF文件,当我读入时有形状(73,144)。我需要连接它们中的'n',这将给我一个笨重的形状 (17,73,144)。这些netCDF文件的单位为米/秒或其他单位。我的计算中需要这些单位。

1 个答案:

答案 0 :(得分:1)

这是我们在MetPy中使用的方法,确保所有源数组都具有兼容的维度:

<img src="demo1.jpg" alt="Text" />