numPy基础知识

from numpy import *
a = numpy.arange(10) ** 2
a
array([ 0,  1,  4,  9, 16, 25, 36, 49, 64, 81])
b = numpy.arange(10) ** 3
b
array([  0,   1,   8,  27,  64, 125, 216, 343, 512, 729])
c = a + b
c
array([  0,   2,  12,  36,  80, 150, 252, 392, 576, 810])
m = array([arange(2),arange(3)])
m
array([array([0, 1]), array([0, 1, 2])], dtype=object)
m.shape
(2,)
#切片
a  = arange(9)
a[3:7]
array([3, 4, 5, 6])
# 翻转
a[::-1]
array([8, 7, 6, 5, 4, 3, 2, 1, 0])
# 0~7 步长为2 
a[:7:2]
array([0, 2, 4, 6])
# 多维数组切片 
b = arange(24).reshape(2,3,4)
b #三维数组
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]]])
b.shape
(2, 3, 4)
b[0,0,1]
1
# 选取第二层数组
b[1::]
array([[[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
# 选取第一层数组
b[0, : , : ]
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
# 可以用一个省略号代替
b[0, ...]
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
b[0,1]
array([4, 5, 6, 7])
b[0,1,::2]
array([4, 6])
# 选取第一层所有位于第二列的数据
b[0,:,1]
array([1, 5, 9])
b[0,:,-1,]
array([ 3,  7, 11])
b[0,::-1,-1]
array([11,  7,  3])
b[0,::-1]
array([[ 8,  9, 10, 11],
       [ 4,  5,  6,  7],
       [ 0,  1,  2,  3]])
3 第一维和第二维颠倒
b[::-1]
array([[[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]],

       [[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]]])
b
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]]])
# 将数组平铺
b.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])
b.flatten()
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])
# 改变数组维度 别成二维数组
b.shape=(6,4)
b
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]])
# 转换矩阵
b.transpose()
array([[ 0,  4,  8, 12, 16, 20],
       [ 1,  5,  9, 13, 17, 21],
       [ 2,  6, 10, 14, 18, 22],
       [ 3,  7, 11, 15, 19, 23]])
b.resize((2,12))
b
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]])
# 数组组合
a = arange(9).reshape(3,3)
a
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
b = 2 * a
b
array([[ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
#水平组合
hstack((a,b))
array([[ 0,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
concatenate((a,b),axis=1)
array([[ 0,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
#垂直组合
vstack((a,b))
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
concatenate((a,b),axis=0)
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
#深度组合 将相同元祖作为参数传给dstack函数
dstack((a,b))
array([[[ 0,  0],
        [ 1,  2],
        [ 2,  4]],

       [[ 3,  6],
        [ 4,  8],
        [ 5, 10]],

       [[ 6, 12],
        [ 7, 14],
        [ 8, 16]]])
# 列组合 
oned = arange(2)
oned
array([0, 1])
twiced_oned =2 *oned
twiced_oned
array([0, 2])
# 列组合对于一维数组 按照列的方向进行组合
column_stack((oned,twiced_oned))
array([[0, 0],
       [1, 2]])
# 列组合 对于二维数组 与hstack效果相同
column_stack((a,b))
array([[ 0,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
column_stack((a,b)) == hstack((a,b))
array([[ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True],
       [ True,  True,  True,  True,  True,  True]], dtype=bool)
# 行组合
row_stack((oned,twiced_oned))
array([[0, 1],
       [0, 2]])
row_stack((a,b))
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
row_stack((a,b)) == vstack((a,b))
array([[ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True],
       [ True,  True,  True]], dtype=bool)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值