python之numpy学习

来源:互联网 发布:绿色建筑设计软件 编辑:程序博客网 时间:2024/05/22 18:22

     今天花了一天的时间学习了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学习比较浅显,小编会在今后的深入学习中再进行补充,不喜勿喷