簡體   English   中英

用於3D數組的numpy.tile

[英]numpy.tile for 3d array

我必須從兩個值(60,80)中獲得3D數組尺寸(4,2,1)

import numpy as np
array([[[ 60.],
        [ 60.]],
   [[ 60.],
    [ 60.]],
   [[ 80.],
    [ 80.]],
   [[ 80.],
    [ 80.]]])

我做如下

a = np.array([[[ 60.]],
       [[ 80.]]])
np.tile(a, (2, 2,1))

並得到

array([[[ 60.],
        [ 60.]],
       [[ 80.],
        [ 80.]],
       [[ 60.],
        [ 60.]],
       [[ 80.],
        [ 80.]]])

如何獲得期望的數組?

您可以結合使用np.tilenp.repeat

a = np.array([[[ 60.]],
       [[ 80.]]])
np.repeat(np.tile(a, (1,2,1)), 2, axis=0)

#array([[[ 60.],
#        [ 60.]],

#       [[ 60.],
#        [ 60.]],

#       [[ 80.],
#        [ 80.]],

#       [[ 80.],
#        [ 80.]]])

或者使用np.repeat + reshape

np.repeat(a, 4).reshape(4,2,1)
#array([[[ 60.],
#        [ 60.]],

#       [[ 60.],
#        [ 60.]],

#       [[ 80.],
#        [ 80.]],

#       [[ 80.],
#        [ 80.]]])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM