机器学习模块之numpy的常用函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiao_xian_/article/details/82800067

一、矩阵的生成

matrix函数

函数描述:把括号中的数组转换为矩阵

np.matrix(a)把括号中的数组转换为矩阵

注:matrix()和 array ()函数都可以通过对象后面加上 .T 得到其转置

       matrix()还可以在后面加 .H 得到共轭矩阵, 加 .I 得到逆矩阵

       array()就不可以 

mat函数

(1)、np.mat(b)将括号中的数组b转化为矩阵

(2)、mat()函数生成矩阵中数据可以为字符串以分号(;)分割,或者为列表形式以逗号(,)分割

a=numpy.mat('1,2;3,4')
b=numpy.mat([[1,2],[3,4]])#列表形式以逗号作为分割

array()函数

d=numpy.array([1,2,3,4])
print(type(d))

#结果为:
  <class 'numpy.ndarray'>
#所以使用array()函数产生的不是矩阵格式

 array()函数生成矩阵时数据只能为列表形式 

而且--array()函数的乘法(*)是矩阵元素所对应位置的两个数进行相乘!若想让之遵循矩阵乘法规则可以使用dot()函数

总结:(1)、array()函数的相乘中:*代表点乘(对应元素相乘),dot()代表矩阵乘积。

                       mat()函数的乘法中:*代表矩阵乘,multiply()代表点乘 

二、矩阵的运算函数  

dot函数

函数描述:对于秩为1的数组,执行对应位置相乘,然后再相加;

                  对于秩不为1的二维数组,执行矩阵乘法运算;

 dot函数是np中的矩阵乘法函数,x.dot(y) 等价于 np.dot(x,y)

multiply函数

函数描述:数组和矩阵对应位置相乘,输出与相乘数组/矩阵的大小一致 
numpy.multiply(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'multiply'>

星号(*)乘法运算

作用描述:作用对象为数组时——对应位置相乘

                 作用对象为矩阵时——执行矩阵乘法

求最值max()与maximum()函数 

np.max:(a, axis=None, out=None, keepdims=False)

                最少输入一个参数

                axis默认为0(0:列向        1:行向)

       作用:求序列的最值

np.maximum:(X, Y, out=None) 

                至少输入两个参数

      作用:X和Y逐位比较去其大值

>> np.max([-2, -1, 0, 1, 2])
2
 
>> np.maximum([-2, -1, 0, 1, 2], 0)
array([0, 0, 0, 1, 2])
 
        # 当然 np.maximum 接受的两个参数,也可以大小一致
        # 或者更为准确地说,第二个参数只是一个单独的值时,其实是用到了维度的 broadcast 机制;

其他运算函数 

np.exp(v)---e的v次方

np.log()---求对数

np.abs()---求绝对值

np.random.randn(5)生成5个高斯随机数变量,类型为一维数组

np.random.randn(5,1) 生成的为5行1列的矩阵

np.outr()---倍数运算

函数作用:第一个参数表示倍数,使得第二个向量每次变为几倍。

import numpy as np
x1 = [1,2,3]
x2 = [4,5,6]
outer = np.outer(x1,x2)

#结果显示
[[ 4  5  6]       #1倍
 [ 8 10 12]       #2倍
 [12 15 18]]      #3倍

猜你喜欢

转载自blog.csdn.net/xiao_xian_/article/details/82800067