怎么这么多库
Numpy,SciPy和Pandas,Matplotlib这几个常见库的区别是什么?传送门
Numpy
常见功能一览
矩阵处理
-
如果需要把一个多维数组“拍平”,可以使用 flatten 函数:
name.flatten()
数据的叠加hstack(打横) 和 vstack(树立)print('水平方向:', np.hstack((f, g)))
ravel():如果没有必要,不会产生源数据的副本
flatten():返回源数据的副本
squeeze():只能对维数为1的维度降维 -
z.reshape(-1, 1)
行数未知,列数为1,numpy.reshape(a, newshape, order='C')
反正-1就是不管了的意思嘛 -
numpy.moveaxis
(123)将2移动到3 同样的函数还有transpose swapaxes
-
a.dot(b)
与np.dot(a,b)
效果相同都是矩阵的相乘(左乘右)
np.asarray(projection_matrix).dot(point_3d_position)
是后者的矩阵点乘前者的矩阵
区分np.matmul(h, i)
矩阵相乘
https://blog.csdn.net/alwaysyxl/article/details/83050137 -
round(80.23456, 2) : 80.23
,不设置参数则取整 -
np.linalg.norm
求范数 https://blog.csdn.net/hqh131360239/article/details/79061535
np.linalg.det()
:矩阵求行列式np.linalg.inv()
:矩阵求逆
np.transpose()
: 矩阵转置(对于三维的数组,有比如(1,0,2)就是将第一维,第二维的元素进行reshape的操作,就是重新放置一下) -
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
等差数列,当endpoint=false的时候,结束点会被排除,公差-10%,retstep=true的时候会显示公差。
numpy的数组的处理
-
a = np.array([[1,2,3],[3,4,5],[4,5,6]])
print (a[...,1]) # 第2列元素
print (a[1,...]) # 第2行元素
即等于print (a[1,:])
逗号前的是索引,后面是空的切片print (a[...,1:]) # 第2列及剩下的所有元素
反之print (a[1:,:])
就是一维下第2行及剩下的所有元素print (a[::2]) #步长为2的切片
!对于n维数组,第n+1个参数是没有 “ ,
”没有切片的性质的 -
numpy.digitize(x, bins, right = False)
返回x在数组bins的位置(right:间隔是否包含最右 -
矩阵转换列表类a2.tolist() 列表转数组 np.array(a3)
-
numpy.digitize(x, bins, right = False) bins :一维单调数组,必须是升序或者降序
right:间隔是否包含最右 返回值:x在bins中的位置 -
array[array >= value]直接用numpy数组的比较哦嘻嘻
-
np.diag = diagonal对角线一维变二维,二维变一维
-
np.tile 按照参数往不同的方向铺瓷砖啊
Pandas
pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
Series:可以运用ndarray或字典的几乎所有索引操作和函数,融合了字典和ndarray的优点。DataFrame:是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。
Index:pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。Index对象不可修改,从而在多个数据结构之间安全共享。
Matplotlib
- 出现了死活不出图的问题,百度了很多的解决方法,我觉得,
不要你觉得,是新版的库导入方式的问题,我的matplotlib版本为3.1.0,正确的导入姿势应该是import matplotlib.pyplot as plt
TensorboardX
- 教程 https://www.jianshu.com/p/46eb3004beca
PIL
- PIL.Image与np.array的转换
PIL —> np |img = numpy.array(im)
np —> PIL |img = Image.fromarray(img.astype('uint8')).convert('RGB')
不同库之间的数组转换是要的!!!先转换为他的形式才可以使用他的功能 - 图片缩放并不会失真
img = img.resize((width, height),Image.ANTIALIAS)