Python 《数据科学入门》 读书笔记第四章 2018-8-2011:30开始

接着看这本书。。看到第三章的时候,脑阔又疼了。用的时候再说吧,而且R软件功能很强大。蹦过去了。

接着到了第四章。我一想说第四章讲的线性代数。。我特么高等代数都学过还看这个干嘛啊。

又到了第五章,将统计,我说真巧,我就是统计专业的。

又到了第六章,一看,哇概率论,他咋知道我的专业是概率论与数理统计。看了一会,算了,还是从第四章开始看吧。要不一会书都直接翻过去了。

不说加法。比较容易理解。除了列表和元组的加法是列表添加元素外,其他的加法都是数学加法。

乘法

暂时在我以前写算法过程中,经常用到的乘法有这几种命令。

import numpy as np
a=...
b=...
#这种方式是对应元素相乘完再相加
np.dot(a,b)
#这种方式是对应元素相乘,如果再相加相当于dot函数
np.multiply(a,b)
np.dot(a,b)=sum(np.multiply())
#这种方式是直接乘
a*b

这三种方法。对于不同的数据结构有不同的使用特点。

list 格式

只能用dot函数与multiply函数

import numpy as np
a=[1,2,3]
b=[4,5,6]
np.dot(a,b)
np.multiply(a,b)
sum(np.multiply(a,b))    #发现这个值与dot值相同

如果直接使用a*b就会报错

元组

其实在我的印象里,元组基本上所有的性质和列表差不多。除了元组不能更改。就是说在列表中,你可以更改已经赋值过的值,但是元组不行。

扫描二维码关注公众号,回复: 4384235 查看本文章

数组

在数组中,可以用直接用乘法“*”

import numpy as np
a=np.array([1,2,3])
b=np.array([4,5,6])
#以下这两个值是一样的
a*b
np.multiply(a,b)
#这个就是正常的
np.dot(a,b)

矩阵

在矩阵中,必须要考虑维数的影响,比如a,b都是行向量,有的乘法就不能直接算

ipmort numpy as np
a=np.matrix([1,2,3])
b=np.matrix([4,5,6])

np.dot(a,b)    #出错
np.dot(a,b.T)    #正确

np.multiply(a,b)     #常规正确
np.multiply(a,b.T)     #程序不报错,但是结果迥异
np.multiply(a.T,b)     #程序不报错,结果为上一行命令的转置

a*b    #结果报错
a.T*b  #出现3×3矩阵
a*b.T  #出现3×3矩阵

也就是说矩阵的乘法最为复杂。我在写算法的时候总是要想半天我要得的矩阵最终是几乘几的,然后再一点一点算,如果还是不确定的话,就拿笔算出来一两个,一对就能确定无疑了。

字典

如果有一天我想要不作处理直接用字典做乘法,我的编程生涯可能就该结束了。

混合使用

至于混合着使用,也可以

import numpy as np
a=np.matrix([1,2,3])
b=np.array([4,5,6])
np.dot(a,b)
np.multiply(a,b)

但是在写一些算法的过程中,因为很多内置函数返回的值类型都不一样,有的返回数组,有的返回矩阵,有的返回元组等等。我一般都是加上一个类型转换函数,将所有的类型都统一。要不然类型混乱的时候,对于写算法得出结果来实在是蓝瘦。所以我建议将数据都转换成相同的类型。

大概第四章就结束了。原理部分没必要看。

2018-8-20 13:07

猜你喜欢

转载自blog.csdn.net/bingfeiqiji/article/details/81869191