python - 将 3D numpy 拆分为 3 个不同的数组

标签 python multidimensional-array numpy-ndarray voxel numpy-slicing

我有 numpy.array pf 形状 (64, 64, 64) 我想把它分成 3 个变量,所以

x.shape ==> (64) 

y.shape ==> (64) 

z.shape ==> (64) 

由于每个暗淡代表体素坐标(x,y,z),我尝试使用dsplit()但没有运气。有什么建议吗?

最佳答案

您正在寻找的可能是transpose + ravel:

X = np.arange(27).reshape((3,3,3))
>>> X
 ([[[ 0,  1,  2],
    [ 3,  4,  5],
    [ 6,  7,  8]],

   [[ 9, 10, 11],
    [12, 13, 14],
    [15, 16, 17]],

   [[18, 19, 20],
    [21, 22, 23],
    [24, 25, 26]]])

您的x,y,z:

>>> X.transpose((0,1,2)).ravel()
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
   17, 18, 19, 20, 21, 22, 23, 24, 25, 26])

>>> X.transpose((1,2,0)).ravel()
array([ 0,  9, 18,  1, 10, 19,  2, 11, 20,  3, 12, 21,  4, 13, 22,  5, 14,
   23,  6, 15, 24,  7, 16, 25,  8, 17, 26])

>>> X.transpose((2,0,1)).ravel()
array([ 0,  3,  6,  9, 12, 15, 18, 21, 24,  1,  4,  7, 10, 13, 16, 19, 22,
   25,  2,  5,  8, 11, 14, 17, 20, 23, 26])

关于python - 将 3D numpy 拆分为 3 个不同的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53638048/

相关文章:

python - 显示数组内元素的数据类型并将其转换为 Integer。 Python 和 Numpy

python protobuf无法反序列化消息

python - 创建空列表并进行一些操作

php - 多维数组

c++ - 初始化一个多维数组c++

python - 如何访问 N*M*M numpy 数组的下三角

python - pd.Series of Lists - 检查列表中的元素

python - 尝试连接到 CosmosDB 数据库时出现 pymongo.errors.ServerSelectionTimeoutError

python - 理解 NumPy 的 einsum

python - Numpy/展平列表