1.
(1)数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 (2)数据分析三剑客:Numpy,Pandas,Matplotlib (3)NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算
提供大量的数学函数库
numpy中seriel,dataframe重点
matplotlib:直方图和散点图等等其他图
前两个是数据分析相关的,后边的这个是绘图相关的
一、创建ndarray
2. 使用np.array()创建
例1:一维数组创建
import numpy as np
np.array([1,2,3,4,5])
结果:
array([1, 2, 3, 4, 5])
例2:二维数据创建
np.array([[1,2,3.2],[4,5,6]])
结果:
array([[ 1. , 2. , 3.2], [ 4. , 5. , 6. ]])
注意: numpy默认ndarray的所有元素的类型是相同的 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int

例3:使用matplotlib.pyplot获取一个numpy数组,数据来源于一张图片
import matplotlib.pyplot as plt
plt.imread('./cat.jpg')
运行之后,返回的是一个三维数组,外边有三层包裹
结果:

例4:
import matplotlib.pyplot as plt #cat_img_arr = plt.imread('./cat.jpg') cat_img_arr = plt.imread('cat.jpg') plt.imshow(cat_img_arr)
运行之后,得到的结果:

例5:
import matplotlib.pyplot as plt #cat_img_arr = plt.imread('./cat.jpg') cat_img_arr = plt.imread('cat.jpg') plt.imshow(cat_img_arr) plt.imshow(cat_img_arr-50)
运行之后,得到下面的结果:减去50之后的结果

例6:
import matplotlib.pyplot as plt #cat_img_arr = plt.imread('./cat.jpg') cat_img_arr = plt.imread('cat.jpg') plt.imshow(cat_img_arr) plt.imshow(cat_img_arr-50) cat_img_arr
运行结果:
打印出了这个数组

例7:
import matplotlib.pyplot as plt #cat_img_arr = plt.imread('./cat.jpg') cat_img_arr = plt.imread('cat.jpg') plt.imshow(cat_img_arr) plt.imshow(cat_img_arr-50) cat_img_arr.shape #数组的形状应该得到的是下面的数组(456,730,3)
展示元组:也就是数组的形状
前两个表示像素,第三个表示颜色
结果:

2. 使用np的routines函数创建
(1)包含以下常见创建方法:
例1:

例2:

例3:等差数列
用法:
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
返回20个元素:

例4:

例5:

固定随机数,5行6列,随机因子
#固定时间种子,产生的随机数就固定下来了

例6:标准正态分布

例7:生成0-1的随机数

三.ndarray的属性

例1:

得到下面的结果:

核心重点:索引和切片的处理
123
四.ndarray的基本操作
1. 索引¶ 一维与列表完全一致 多维时同理
例1:索引查找结果,修改结果


例2:索引:一维与列表完全一致 多维时同理


(1)获取二维数组前两行,顾头不顾尾

(2)获取二维数组前两列数据,逗号左边是行数据,逗号右边是列数据

(3)获取数据前两行和前两列数据

(4)将数据反转,例如[1,2,3]==>[3,2,1]
::进行切片

(5)列倒序

(6)全部倒序
arr[::-1,::-1]
例3:
(1)如何将图片进行全置倒序处理之后,需要保存一下

带颜色的图片是三维的,查看一下形状
(3)下面是上下倒置的结果:

(4)下面是左右倒置的结果

(5)下面是颜色倒置的结果:

例4:变形
使用arr.reshape()函数,注意参数是一个tuple! 基本使用 1.将一维数组变形成多维数组

将上边的array转换成 一维的,7行5列,再转换成5行7列的

扩展:转化成三维的


例5:图片倒置

#对一维数组中所有的元素倒置

例5;级联(numpy中理解成合并就行),
panda中不能这么理解

(1)axis表示的是轴向的意思
axis=0:轴向 0表示的是竖直的轴向 1水平的轴向

看一下arr的形状

concatentate必须对齐才行,否则会报错



注意上图,只有二维和二维的才能合并,行和列一定要对齐才行

例6:
(1)合并两张图片
axis=1表示左右,竖向连接,axis=0表示上下,横向连接



(2)水平级联hstack和竖直级联vstack


例7. 切分:

下面我们看下是如何切分的?
(1)

(2)下面是切分之后的结果
axis==>表示的是横着切

下边表示的是竖着切

(3)
切分照片?



(4)


聚合操作:

(1)

(2)np.max/np.min
对所有的求和

求方差

可以指定轴向,将三维数组中每个轴向的第三个数组进行求方差

广播机制:

(1)

通过广播机制进行相加

(2)

缺失的数据通过已有的数据进行填充

(3)



缺失的维度会自动补齐这个数值
ndarry的排序
(1)快速排序

第一个不改变输入,第二个改变输入,第一种是升序

下边的第一种也是不改变
139得到的结果是:
array([3,5,6,7,8])
