美文网首页人工智能
Python 人工智能应用快速入门(四)Numpy(2)

Python 人工智能应用快速入门(四)Numpy(2)

作者: 机器树 | 来源:发表于2018-11-11 15:13 被阅读4次

    上次numpy的第一次分享,涉及了numpy矩阵的构建,一维二维的,矩阵的size,取元素,特殊矩阵的构建,slicing操作,list的comprehension,整数索引,布尔索引,等等。今天一起来看一下numpy的第二次分析,包括,numpy矩阵元素的数据类型,元素的计算,特殊方法的构建矩阵,等等。下面的分享参考python, scipy, 和斯坦福大学的python 教程。

    在上次的学习中,我们创造了一个np.array,其中包含浮点数,而使用print (type(array))可以查看该数组的类型。

    import numpy as np

    a = np.zeros((1))   #创造一个0向量,只包含一个0,用小括号,zero加s

    print(a)            # [0]

    print(type(a),type(a[0]))   # 0默认是64位的float类型的

    b = np.array([1,2.5,3,4]) # 包含一个浮点型,默认float64 类型

    c = np.array([1,2,3,4])# i默认int32

    当一个矩阵中包含浮点型,那么整个数组的data type就默认是 folat 64,并且每个元素都是。

    除了默认的类型之外,可以创造给定的类型,整数类型包括,int 8, 16, 32,

    64, 浮点型的包含float 16, 32, 64. 具体的更多案例,就参考官网的链接:参考链接:https://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html

    Numpy的出现让我们操作矩阵和运算变的很方便,所以矩阵的运算就变得很重要。矩阵对于运算符号的操作是元素类的操作。

    比如加法运算:就是同一个size的矩阵,对应元素的相加。减法,乘法和除法也类似。

    a4 = a1 - a2 # list类型不支持 list - list 操作,也不支持除法,乘法操作。

    print (a4,np.subtract(a1,a2)) # 可以利用np.subtract

    print (a1/a2,np.divide(a1,a2)) # np.devide

    矩阵除了元素的运算外,其实更多的是矩阵的乘法,取均值,标准差和标准化等等一系列操作。

    d = np.array([[1,2],[1,2],[1,2]])

    print (b.dot(d),np.dot(b,d)) # 3*2 的矩阵和2*3的矩阵相乘,得到2*2的矩阵

    # i_STEM,一维的向量相乘,

    v1 = np.array([1,2,3])#

    v2 = np.array([1,2,3])#

    print (v1.dot(v2)) # 14,两个向量的相乘是一个值。

    元素取和操作:

    v = np.array([[1,2,3],[4,5,6]])

    print (np.sum(v)) # 21

    print (np.sum(v,axis = 0))# [5,7,9],每一列的和

    print (np.sum(v,axis = 1))# [6,15],每一行的和

    print ((v-np.mean(v,axis =

    0))/np.std(v,axis = 0)) # 按列标准化之后,新的矩阵每一列

    # 均值为0,标准差是1,按列标准化是比较常用的一个操作,实际中每一行经常是一条数据,

    其他操作还有转置操作等等。其他的更多操作参考:

    https://docs.scipy.org/doc/numpy/reference/routines.math.html

    很多有用的操作,比如给一个二维的矩阵每一行都加上一个向量,得到一个新的矩阵。

    b = np.array([3,4])

    bs = np.tile(b,(2,3))# 原来1行两列,2*3的堆叠后,变成(1*2)*(2*3)的大小

    # tile本身有砖块的意思,就是堆叠的引申意义

    [[3 4 3 4 3 4]

     [3 43 4 3 4]]

    更多numpy的常用用法,可以参考官网查看了:https://docs.scipy.org/doc/numpy/reference/

    好,下次跟大家分享scipy 的用法,这是处理图像时候常用的,比如做医学图像处理等等。

    相关文章

      网友评论

        本文标题:Python 人工智能应用快速入门(四)Numpy(2)

        本文链接:https://www.haomeiwen.com/subject/xfwxfqtx.html