python – 当ndims事先不知道时处理多维数组
发布时间:2020-12-20 11:31:03 所属栏目:Python 来源:网络整理
导读:我正在处理来自netcdf文件的数据,具有多维变量,读入numpy数组.我需要扫描所有维度中的所有值(numpy中的轴)并更改一些值.但是,我事先并不知道任何给定变量的维度.在运行时,我当然可以获得numpy数组的ndims和形状. 如何在不知道尺寸或形状数量的情况下通过所有
我正在处理来自netcdf文件的数据,具有多维变量,读入numpy数组.我需要扫描所有维度中的所有值(numpy中的轴)并更改一些值.但是,我事先并不知道任何给定变量的维度.在运行时,我当然可以获得numpy数组的ndims和形状.
如何在不知道尺寸或形状数量的情况下通过所有值编程循环?如果我知道变量恰好是2维,我会这样做 shp=myarray.shape for i in range(shp[0]): for j in range(shp[1]): do_something(myarray[i][j]) 解决方法
你应该看看ravel,nditer和ndindex.
# For the simple case for value in np.nditer(a): do_something_with(value) # This is similar to above for value in a.ravel(): do_somting_with(value) # Or if you need the index for idx in np.ndindex(a.shape): a[idx] = do_something_with(a[idx]) 在一个不相关的注释中,numpy数组被索引为a [i,j]而不是[i] [j].在python中,[i,j]相当于用元组索引,即[(i,j)]. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |