机器学习相关函数(一)——基础函数

1、np.eye()

参考网址:https://docs.scipy.org/doc/numpy/reference/generated/numpy.eye.html#numpy.eye

简介

返回一个主对角线为一,其余为零的矩阵。

基本形式

numpy.eye(NM=Nonek=0dtype=<class 'float'>order='C')

参数

参数作用
N返回矩阵的行数
M返回矩阵的列数,默认和行数相等
k对角线的索引:0(默认值)指的是主对角线,正值指的是上对角线,负值指的是下对角线
dtype 返回数组的数据类型
order输出以行主(row-major;'C')还是列主(column-major;'F')的形式被储存

例子

>>> np.eye(4)
array([[1., 0., 0., 0.],
       [0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.]])

>>> np.eye(4,M=2)
array([[1., 0.],
       [0., 1.],
       [0., 0.],
       [0., 0.]])

>>> np.eye(4,k=1)
array([[0., 1., 0., 0.],
       [0., 0., 1., 0.],
       [0., 0., 0., 1.],
       [0., 0., 0., 0.]])

>>> np.eye(4,k=-2)
array([[0., 0., 0., 0.],
       [0., 0., 0., 0.],
       [1., 0., 0., 0.],
       [0., 1., 0., 0.]])

>>> np.eye(4,dtype=int)
array([[1, 0, 0, 0],
       [0, 1, 0, 0],
       [0, 0, 1, 0],
       [0, 0, 0, 1]])

 

2、coo_matrix()&csr_matrix()

参考网址:https://docs.scipy.org/doc/scipy/reference/sparse.html

简介

两者都是建立悉数矩阵的函数,不同之处在于存储矩阵的方式不同。(转自https://www.cnblogs.com/xbinworld/p/4273506.html)

coo是最简单的一种格式,每一个元素需要用一个三元组来表示,分别是(行号,列号,数值),对应上图右边的一列。这种方式简单,但是记录单信息多(行列),每个三元组自己可以定位,因此空间不是最优。

 

CSR是比较标准的一种,也需要三类数据来表达:数值,列号,以及行偏移。CSR不是三元组,而是整体的编码方式。数值和列号与COO一致,表示一个元素以及其列号,行偏移表示某一行的第一个元素在values里面的起始偏移位置。如上图中,第一行元素1是0偏移,第二行元素2是2偏移,第三行元素5是4偏移,第4行元素6是7偏移。在行偏移的最后补上矩阵总的元素个数,本例中是9。

例子

#之前的矩阵转换成稀疏矩阵记录方式
>>> sparse_matrix = sparse.csr_matrix(eye)
>>> print(format(sparse_matrix))
(0, 0)	1.0
(1, 1)	1.0
(2, 2)	1.0
(3, 3)	1.0

#造一个稀疏矩阵
>>> row  = np.array([0, 3, 1, 0])
>>> col  = np.array([0, 3, 1, 2])
>>> data = np.array([4, 5, 7, 9])
>>> coo_matrix((data, (row, col)), shape=(4, 4)).toarray()
array([[4, 0, 9, 0],
       [0, 7, 0, 0],
       [0, 0, 0, 0],
       [0, 0, 0, 5]])

 

3、np.ones()

简介

返回一个充满1的给定形式的数组

基本形式

numpy.ones(shapedtype=Noneorder='C')

参数

参数作用
shape确定行数、列数
dtype返回数组的数据类型
order输出以行主(row-major;'C')还是列主(column-major;'F')的形式被储存

例子

>>> np.ones(5)
array([ 1.,  1.,  1.,  1.,  1.])

>>> np.ones((5,), dtype=np.int)
array([1, 1, 1, 1, 1])

>>> np.ones((2, 1))
array([[ 1.],
       [ 1.]])

>>> s = (2,2)
>>> np.ones(s)
array([[ 1.,  1.],
       [ 1.,  1.]])

 

4、np.arange()

参考网址:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html

简介

返回一个一维数组

基本形式

numpy.arange([start, ]stop, [step, ]dtype=None)

参数

参数作用
start开始的值。开始包括此值。默认起始值​​为0。
stop间隔结束。间隔不包括此值,除非在某些情况下,step不是整数,浮点舍入会影响out的长度
step值之间的间距。是两个相邻值之间的距离。默认步长为1。如果将step指定为位置参数,则还必须给出start
dtype输出数组的类型。如果未给出,则从其他输入参数推断数据类型。

例子

>>> np.arange(3)
array([0, 1, 2])

>>> np.arange(3.0)
array([ 0.,  1.,  2.])

>>> np.arange(3,7)
array([3, 4, 5, 6])

>>> np.arange(3,7,2)
array([3, 5])

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值