python之numpy学习

     今天花了一天的时间学习了python的numpy模块,顺便记录一下学习过程,如有不当的地方,还望读者留言,共同学习。

一:导入numpy模块

import numpy as np

二:通过array()创建numpy数组

    # 使用array()创建一维数组
    arr = np.array([1,3,5,7])
    print(arr)  # [1 3 5 7]
    # 这里和其他参考资料有所出入
    # 这是源码的注释 If not given, then the type will be determined as the minimum type required
    print(arr.dtype) # int32

三:通过arange()创建数组

    # 此写法需要指定步长
    arr = np.arange(2,10,2,np.float32)
    print(arr) # [ 2.  4.  6.  8.]
    print(arr.dtype) # float32
    arr2 = np.arange(2,3,0.1)
    print(arr2) # [ 2.   2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9]
    print(arr2.dtype) # float64

四:矩阵的计算

    # 随机生成0到1的2行3列的矩阵
    # a = np.random.random((2,3))
    a = np.arange(9).reshape((3,3))
    print(a)
    print("矩阵的最小值", a.min()) # np.sum(a,axis=0)
    print("矩阵的最大值", a.max())
    print("矩阵的和", a.sum())

    print("矩阵的每一行最小值", a.min(axis=1)) # axis=1 表示求每一行的最小值,返回<class 'numpy.ndarray'>
    # print(type(a.min(axis=1)))
    print("矩阵的每一列最大值", a.max(axis=0)) # axis=0 表示每一列的最大值
    print("矩阵的每一行和", a.sum(axis=1)) # 求每一行的和
    print("矩阵的每一列和", a.sum(axis=0)) # 求每一列的和
    print("矩阵最小值的索引", np.argmin(a))
    print("矩阵最大值的索引", np.argmax(a))
    print("矩阵的平均值", np.mean(a)) # np.average(a)
    print("矩阵的中位数", np.median(a))
    print("矩阵的数逐个相加", np.cumsum(a))
    print("矩阵的数逐个相减", np.diff(a))
    #  (array([0, 0, 1, 1, 1, 2, 2, 2], dtype=int64), array([1, 2, 0, 1, 2, 0, 1, 2], dtype=int64))
    # 第一个array表示行, 第二个array表示列
    print("矩阵中非0的数",np.nonzero(a))
    print("矩阵排序",np.sort(a))
    # 表示把 矩阵a中小于2的值全部赋值为2,大于4的全部赋值为4
    print("矩阵截取",np.clip(a,2,4))

五:矩阵合并

    a = np.array([1,2,3,4])
    b = np.array([5,6,7,8])
    # 矩阵上下合并
    c = np.vstack((a,b))
    """
         [[1 2 3 4]
         [5 6 7 8]]
        <class 'numpy.ndarray'>
        (2, 4)
    """
    # print(c)
    # print(type(c))
    # print(c.shape)
    # 矩阵横向合并
    d = np.hstack((a,b))
    """
        [1 2 3 4 5 6 7 8]
        <class 'numpy.ndarray'>
        (8,)
    """
    # print(d)
    # print(type(d))
    # print(d.shape)
    print(a.shape)
    # 在行上加一个维度
    e = a[np.newaxis,:]
    print(e)
    print(e.shape)  # (1, 4)
    # 在列上加一个维度
    f = a[:,np.newaxis]
    print(f)
    print(f.shape)  # (4, 1)

六:矩阵切分

    a = np.arange(12).reshape((3,4))
    print(a)
    # 默认 axis=0 按行分,
    # 注意只能平均切分
    """
    [array([[0, 1],
           [4, 5],
           [8, 9]]), 
    array([[ 2,  3],
           [ 6,  7],
           [10, 11]])]
    """
    print(np.split(a,2,axis=1))  #np.vsplit(a,2)
    # 不平均切分
    """
    [array([[0, 1],
            [4, 5],
            [8, 9]]), 
    array([[ 2],
           [ 6],
           [10]]), 
    array([[ 3],
           [ 7],
          [11]])]
    """
    print(np.array_split(a,3,axis=1)) #np.hsplit(a,2)

七:由于初次接触numpy学习比较浅显,小编会在今后的深入学习中再进行补充,不喜勿喷





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值