axis的一些认识

numpy.concatenate((a1, a2, …), axis=0)
concatenate 按轴axis连接array组成一个新的array
axis 是什么意思?
是a1 ,a2 … 的维度
例子1:

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])               b是一个二维array
c=np.concatenate((a, b), axis=0)
print(c)
array([[1, 2],
       [3, 4],
       [5, 6]])

要是:

a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6]])               b是一个二维array
c=np.concatenate((a, b), axis=1)
print(c)
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 2 and the array at index 1 has size 1
意思就是维度不匹配

例子2:

# 变换形式后
np.concatenate((a, b.T), axis=1)
array([[1, 2, 5],
       [3, 4, 6]])

例子1中
type(a)是(2,2) type( b) 是(1,2)
axis = 0 满足其余axis 相同

项目 type(a) type(b)
axis=0 1 2
axis =1 2 2

例子2中
type(a)是(2,2) type( b) 是(1,2)
axis = 1 满足其余axis 不相同

例子3:
用一个普通的多维加强理解
axis = 0

a = np.array([[[[[1,2],
        [2,3],
        [4,5]]]]])
print(a.shape) # (1, 1, 1, 3, 2)
b = np.array([[[[[1,2],
        [2,3],
        [4,5]]]]])
c = np.concatenate((a,b),axis=0)
print(c.shape) # (2, 1, 1, 3, 2)        

[[[[[1 2]
    [2 3]
    [4 5]]]]

 [[[[1 2]
    [2 3]
    [4 5]]]]]

axis=1

(1, 1, 1, 3, 2)
[[[[[1 2]
    [2 3]
    [4 5]]]


  [[[1 2]
    [2 3]
    [4 5]]]]]
print(c.shape)
(1, 2, 1, 3, 2)

axis=2

[[[[[1 2]
    [2 3]
    [4 5]]

   [[1 2]
    [2 3]
    [4 5]]]]]
print(c.shape)
(1, 1, 2, 3, 2)

axis=3

[[[[[1 2]
    [2 3]
    [4 5]
    [1 2]
    [2 3]
    [4 5]]]]]
print(c.shape)
(1, 1, 1, 6, 2)

axis=4

[[[[[1 2 1 2]
    [2 3 2 3]
    [4 5 4 5]]]]]
    
print(c.shape)
(1, 1, 1, 3, 4)

axis=5

numpy.AxisError: axis 5 is out of bounds for array of dimension 5
发布了60 篇原创文章 · 获赞 9 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览