Numpy基础三:Numpy形状维度操作

1. ndarray.ndim

使用ndarray.ndim可以查看array中轴的数量(axes)
例如:

>>> array_example = np.array([[[0, 1, 2, 3],
...                            [4, 5, 6, 7]],
...
...                           [[0, 1, 2, 3],
...                            [4, 5, 6, 7]],
...
...                           [[0 ,1 ,2, 3],
...                            [4, 5, 6, 7]]])

运行:

>>> array_example.ndim
3

知道轴的数量后还需要了解轴的方向,如图所示:

在这里插入图片描述
注1: 列总是最后一维。
注2: numpy和pytorch均可以按照轴方向进行运算

2. 形状操作

获取形状:

>>> array_example.shape
(3, 2, 4)

更改数组形状

>>> a = np.arange(6)
>>> print(a)
[0 1 2 3 4 5]
>>> b = a.reshape(3, 2)
>>> print(b)
[[0 1]
 [2 3]
 [4 5]]

或者使用np.reshape:

>>> numpy.reshape(a, newshape=(1, 6))
array([[0, 1, 2, 3, 4, 5]])

在这里插入图片描述
数组转置:arr.transpose()或arr.T

>>> arr = np.arange(6).reshape((2, 3))
>>> arr
array([[0, 1, 2],
       [3, 4, 5]])
>>> arr.transpose()
array([[0, 3],
       [1, 4],
       [2, 5]])
>>> arr.T
array([[0, 3],
       [1, 4],
       [2, 5]])

调整轴axis顺序:

>>> a = np.random.randint(0,10,(2,3,4,5))
>>> print("原数组形状:",a.shape)
>>> print("transpose:",np.transpose(a,(1,2,0,3)).shape)#重新指定轴0到3的顺序
>>> 原数组形状: (2, 3, 4, 5)
>>> transpose: (3, 4, 2, 5)

交换两个轴:

>>> print("swapaxes:",np.swapaxes(a,1,2).shape)#交换轴1和2
>>> swapaxes: (2, 4, 3, 5)

3.维度增加

1)np.newaxis

将1维数组变成行向量:

# 1D array to 2D array
>>> row_vector = a[np.newaxis, :]
>>> row_vector.shape
(1, 6)

将1维数组变成列向量:

>>> col_vector = a[:, np.newaxis]
>>> col_vector.shape
(6, 1)
2)np.expand_dims

将1维数组变成行向量:

# 1D array to 2D array
>>> row_vector = np.expand_dims(a,axis=0)
>>> row_vector.shape
(1, 6)

将1维数组变成列向量:

>>> col_vector = np.expand_dims(a,axis=1)
>>> col_vector.shape
(6, 1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值