python – 当ndims事先不知道时处理多维数组

python – 当ndims事先不知道时处理多维数组,第1张

概述我正在处理来自netcdf文件的数据,具有多维变量,读入numpy数组.我需要扫描所有维度中的所有值(numpy中的轴)并更改一些值.但是,我事先并不知道任何给定变量的维度.在运行时,我当然可以获得numpy数组的ndims和形状. 如何在不知道尺寸或形状数量的情况下通过所有值编程循环?如果我知道变量恰好是2维,我会这样做 shp=myarray.shapefor i in range(shp[ 我正在处理来自netcdf文件的数据,具有多维变量,读入numpy数组.我需要扫描所有维度中的所有值(numpy中的轴)并更改一些值.但是,我事先并不知道任何给定变量的维度.在运行时,我当然可以获得numpy数组的ndims和形状.
如何在不知道尺寸或形状数量的情况下通过所有值编程循环?如果我知道变量恰好是2维,我会这样做

shp=myarray.shapefor i in range(shp[0]):  for j in range(shp[1]):    do_something(myarray[i][j])
解决方法 你应该看看ravel,nditer和ndindex.

# For the simple casefor value in np.nditer(a):    do_something_with(value)# This is similar to abovefor value in a.ravel():    do_somting_with(value)# Or if you need the indexfor IDx in np.ndindex(a.shape):    a[IDx] = do_something_with(a[IDx])

在一个不相关的注释中,numpy数组被索引为a [i,j]而不是[i] [j].在python中,[i,j]相当于用元组索引,即[(i,j)].

总结

以上是内存溢出为你收集整理的python – 当ndims事先不知道时处理多维数组全部内容,希望文章能够帮你解决python – 当ndims事先不知道时处理多维数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192958.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存