NumPy形状操作

数组的形状由它每个轴上的元素个数给出:
shape

>>> import numpy as np
>>> a = np.floor(10*np.random.random((3,4)))
>>> a
array([[ 8.,  0.,  3.,  2.],
       [ 9.,  8.,  6.,  3.],
       [ 7.,  9.,  1.,  8.]])
>>> a.shape
(3, 4)

一个数组的形状可以被多种命令修改:

ravel, shape, transpose, resize

>>> a.ravel()
array([ 8.,  0.,  3.,  2.,  9.,  8.,  6.,  3.,  7.,  9.,  1.,  8.])
>>> a.shape
(3, 4)
>>> a.shape=(6,2)
>>> a
array([[ 8.,  0.],
       [ 3.,  2.],
       [ 9.,  8.],
       [ 6.,  3.],
       [ 7.,  9.],
       [ 1.,  8.]])
>>> a.transpose()
array([[ 8.,  3.,  9.,  6.,  7.,  1.],
       [ 0.,  2.,  8.,  3.,  9.,  8.]])
>>> a.transpose()
array([[ 8.,  3.,  9.,  6.,  7.,  1.],
       [ 0.,  2.,  8.,  3.,  9.,  8.]])
>>> a
array([[ 8.,  0.],
       [ 3.,  2.],
       [ 9.,  8.],
       [ 6.,  3.],
       [ 7.,  9.],
       [ 1.,  8.]])
>>> a.resize((2,6))
>>> a
array([[ 8.,  0.,  3.,  2.,  9.,  8.],
       [ 6.,  3.,  7.,  9.,  1.,  8.]])

几种方法可以沿不同轴将数组堆叠在一起:

>>> a = np.floor(10*np.random.random((2,2)))
>>> a
array([[ 2.,  9.],
       [ 0.,  8.]])
>>> b = np.floor(10*np.random.random((2,2)))
>>> b
array([[ 5.,  3.],
       [ 4.,  8.]])
>>> np.vstack((a,b))
array([[ 2.,  9.],
       [ 0.,  8.],
       [ 5.,  3.],
       [ 4.,  8.]])
>>> np.hstack((a,b))
array([[ 2.,  9.,  5.,  3.],
       [ 0.,  8.,  4.,  8.]])
>>> np.column_stack((a,b))
array([[ 2.,  9.,  5.,  3.],
       [ 0.,  8.,  4.,  8.]])
>>> a = np.array([4.,2.])
>>> b = np.array([2.,8.])
>>> a[:,np.newaxis]
array([[ 4.],
       [ 2.]])
>>> np.column_stack((a[:,np.newaxis],b[:,np.newaxis]))
array([[ 4.,  2.],
       [ 2.,  8.]])
>>> np.vstack((a[:,np.newaxis],b[:,np.newaxis]))
array([[ 4.],
       [ 2.],
       [ 2.],
       [ 8.]])

将一个数组分割(split)成几个小数组。

>>> a = np.floor(10*np.random.random((2,12)))
>>> a
array([[ 3.,  3.,  1.,  4.,  0.,  5.,  0.,  8.,  8.,  0.,  8.,  9.],
       [ 4.,  0.,  9.,  7.,  7.,  9.,  4.,  6.,  1.,  4.,  3.,  1.]])
>>> np.hsplit(a,3)
[array([[ 3.,  3.,  1.,  4.],
       [ 4.,  0.,  9.,  7.]]), array([[ 0.,  5.,  0.,  8.],
       [ 7.,  9.,  4.,  6.]]), array([[ 8.,  0.,  8.,  9.],
       [ 1.,  4.,  3.,  1.]])]
>>> np.hsplit(a,(3,4))
[array([[ 3.,  3.,  1.],
       [ 4.,  0.,  9.]]), array([[ 4.],
       [ 7.]]), array([[ 0.,  5.,  0.,  8.,  8.,  0.,  8.,  9.],
       [ 7.,  9.,  4.,  6.,  1.,  4.,  3.,  1.]])]
>>> np.hsplit(a,(4,5))
[array([[ 3.,  3.,  1.,  4.],
       [ 4.,  0.,  9.,  7.]]), array([[ 0.],
       [ 7.]]), array([[ 5.,  0.,  8.,  8.,  0.,  8.,  9.],
       [ 9.,  4.,  6.,  1.,  4.,  3.,  1.]])]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值