Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将numpy标注顺序从i,j,k更改为k,i,j_Numpy_Numpy Ndarray - Fatal编程技术网

将numpy标注顺序从i,j,k更改为k,i,j

将numpy标注顺序从i,j,k更改为k,i,j,numpy,numpy-ndarray,Numpy,Numpy Ndarray,我需要帮助 我从nifti 3D图像创建了numpy阵列。 因为数据集维度顺序是以x,y,z(i,j,k)的形式提供的,所以我需要将其更改为z,x,y(k,i,j) Nifti图像尺寸顺序为512x512x508(i,j,k),在转换为numpy阵列后,我得到了错误的形状,因为它被视为(k,i,j) 所以我需要翻转尺寸以得到形状(512512),而不是(512508) 我尝试了各种版本的flip、fliplr、transponse,但我认为我没有取得任何进展 如何正确翻转此阵列 a = np.l

我需要帮助

我从nifti 3D图像创建了numpy阵列。 因为数据集维度顺序是以x,y,z(i,j,k)的形式提供的,所以我需要将其更改为z,x,y(k,i,j)

Nifti图像尺寸顺序为512x512x508(i,j,k),在转换为numpy阵列后,我得到了错误的形状,因为它被视为(k,i,j)

所以我需要翻转尺寸以得到形状(512512),而不是(512508)

我尝试了各种版本的flip、fliplr、transponse,但我认为我没有取得任何进展

如何正确翻转此阵列

a = np.load("/home/roman/train/processed_data/data_train.npy")
a[0].shape```
gives: 
(512, 508)

numpy einsum是一个很好的工具。 正式文件:


在我看来,这是最清晰的书写和阅读方式。

numpy.rollaxis可能?是的,我已经尝试过np.transpose,但现在我意识到我在代码中的错误位置进行了转换。。。我现在成功地做到了。谢谢大家。
nifti = np.random.randint(0,5,size=(508,512,513)) 
# set the last dim to 513 just to make stuff more clear
nifti.shape
# (508, 512, 513)

nifti_reshape = np.einsum('kij->ijk',nifti)
nifti_reshape.shape
(512, 513, 508)