1.1 jupyter基本使用
-
切换
Python
环境$ conda deactivate # 退出anaconda环境 $ conda activate # 进入anaconda环境
-
终端启动
jupyter
$ jupyter notebook
-
快捷键
a # 上面添加一行 b # 下面添加一行 m # markdown模式 y # code模式 shift+enter # 执行cell tab # 自动补全 shift+tab # 帮助文档
1.2 numpy数组创建
-
使用
numpy.array()
创建数组import numpy as np np.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0) np.array([1,2,3]) # 一维数组 np.array([[1,2,3],[1,2,3]]) # 二维数组 # 数组类型优先级:字符串 > 浮点型 > 整型
-
使用
matplotlib.pyplot
创建数组import matplotlib.pyplot as plt # 把图片读进数组:三维数组(行、列、颜色) img_arr = plt.imread('./demo1.jpeg') # 对图片数据进行操作 img_arr = img_arr - 50 # 可视化图片 plt.imshow(img_arr)
-
使用
numpy
的routines
创建数组import numpy as np # 3行4列 np.ones(shape=(3,4)) """ array([[1., 1., 1., 1.], [1., 1., 1., 1.], [1., 1., 1., 1.]]) """ # 一维等差数列,num 份数 np.linspace(0,100,num=21) """ array([ 0., 5., 10., 15., 20., 25., 30., 35., 40., 45., 50., 55., 60., 65., 70., 75., 80., 85., 90., 95., 100.]) """ # 一维等差数列,step 步长 np.arange(10,50,step=2) """ array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48]) """ # 二维随机数组,size 行列 np.random.randint(0,100,size=(5,3)) """ array([[43, 21, 45], [51, 36, 32], [54, 12, 81], [31, 81, 48], [83, 78, 53]]) """
1.3 数组常用属性
-
数组
arr = np.random.randint(0,100,size=(5,3)) arr.shape # 数组形状:(5,3) arr.ndim # 数组维度:2 arr.size # 数组元素个数:15 arr.dtype # 数组内元素的数据类型:dtype('int64') type(arr) # 数组的数据类型:numpy.ndarray # 修改数组内元素的数据类型 arr.dtype = 'uint8'
1.4 索引、切片、反转、变形、聚合
-
索引
arr[0] # 取第1行 arr[[0,1,2]] # 取前3行 arr[0][1] # 取第1行第2列
-
切片
# arr[行切片, 列切片] arr[0:2] # 前2行 arr[:, 0:2] # 前2列 arr[0:3, 0:2] # 前3行 + 前2列 # 例子:图片剪裁 img_arr1 = img_arr[50:600, 100:500]
-
反转
arr[::-1] # 行反转 arr[::, ::-1] # 列反转 arr[::-1, ::-1] # 行反转 + 列反转
-
变形
arr.reshape((3,5)) # 变成3行5列 arr.reshape((15,)) # 变成一维数组 # 级联操作:对数组进行横向或纵向拼接,同维度数组可拼接 np.concatenate((arr,arr), axis=0) # 列拼接 np.concatenate((arr,arr), axis=1) # 行拼接 # 例子:图片拼接 img_arr1 = np.concatenate((img_arr,img_arr,img_arr,img_arr), axis=1)
-
聚合
arr.sum() # 求和 arr.sum(axis=0) # 求每一列的和 arr.sum(axis=1) # 求每一行的和 arr.max(axis=0) # 求每一列的的最大值 arr.min(axis=1) # 求每一行的的最小值 arr.mean() # 求平均值
1.5 数学函数
-
数学函数
np.sin(2.5) # 求sin值 np.cos(arr) # 求数组内元素的cos值 np.tan() np.around(3.1415, decimals=2) # 四舍五入 np.ptp(arr, axis=1) # 每一行元素最大值与最小值之差 # 标准差(一组数据平均值分散程度的度量) # 公式:std = sqrt(mean((x-x.mean())**2)) arr.std() # 方差(标准差是方差的平方根) # 公式:std = mean((x-x.mean())**2) arr.var() # 标准单位矩阵 np.eye(3) """ array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) """ # 矩阵转置(行列转换) arr.T # 矩阵相乘(左侧矩阵每一行 与 右侧矩阵每一列 乘积之和) np.dot(arr, arr.T)