2、numpy 的使用
2.1 numpy 的创建:
(1)使用 np.array() 创建
使用 array() 创建一维数组
import numpy as np
arr = np.array([1,2,3])
arr
image.png
(2)使用array()创建二维数组
arr = np.array([[1,2,3],[4,5,6]])
arr
image.png
(3)数组和列表的区别是什么?
- 数组中存储的数据元素类型必须是统一类型
- 优先级:
- 字符串 > 浮点数 > 整数
2.2 numpy 的使用
将外部的一张图片读取加载到numpy数组中,然后尝试改变数组元素的数值查看对原始图片的影响
(1)使 matplotlib.pyplot 创建
# 导入需要的模块
import matplotlib.pyplot as plt
img1 = plt.imread('1.jpg') # 返回的数组,数组中装载的就是图片内容
plt.imshow(img1) #将numpy数组进行可视化展示
image.png
(2)将图片数组的每一个元素减去100
img1 = img1 - 100 #将每一个数组元素都减去100
plt.imshow(img1)
image.png
会发现的各个像素点都发生的变化。
2.3 numpy的常用方法
(1)ones() 创建一个用1填充的数组
np.ones(shape=(3,4)) #创建一个3行4列的数组,用1填充
image.png
(2)linspace()一维的等差数列数组,num设置元素个数
np.linspace(0,100,num=21) #一维的等差数列数组
image.png
(3)arange()创建等差数列,step设置步长
np.arange(10,20,step=2) #创建一位的等差数列,一个10到20,步长为2的数组
image.png
(4)random.randint()创建随机数列
np.random.randint(0,100,size=(5,4)) #创建一个5行4列元素在0到100之间的随机数组
image.png
2.4 numpy 的常用属性
先创建一个numpy数组:
arr = np.random.randint(0,100,size=(5,4)) #创建一个5行4列元素在0到100之间的随机数组
arr
image.png
(1)shape返回数组的形状
arr.shape #返回数组的形状
image.png
(2)ndim返回数组中的维度
arr.ndim #返回数组中的维度
image.png
(3)size返回数组的大小
arr.size #返回数组的大小
image.png
(4)dtype 返回数组的元素类型
arr.dtype #返回数组的元素类型
image.png
(5)type 返回数组的数据类型
type(arr) #数组的数据类型
image.png
(6)创建一个数组,指定数组元素类型为int32
arr = np.array([1,2,3],dtype='int32')
arr.dtype
image.png
(7)修改数组元素类型
arr.dtype = 'uint8' #修改数组的元素类型
arr.dtype
image.png
2.5 numpy 切片操作
目标:
- 切片操作
- 切出前两列的数据
- 切出前两行的数据
- 切出前两行的前两列数据
- 数组数据反转
- 练习:将一张图片上下左右进行反转操作
- 练习:将图片进行指定区域的裁剪
(1)切出arr数组的前两行数据
arr[0:2]
image.png
(2)切出arr数组的前两列数据
arr[:,0:2]
image.png
(3)切出arr数组的前两行前两列数据
arr[0:2,0:2]
image.png
(4)先查看原数组,然后将原数组进行行倒置
arr
image.png
#将数组的行倒置
arr[::-1]
image.png
(5)将数组的列导致
arr[:,::-1]
image.png
(6)将所有元素倒置
arr[::-1,::-1]
image.png
(7)将一张图片进行左右反转
- 加载图片
img2 = plt.imread('1.jpg')
plt.imshow(img2)
image.png
- 查看图片数组形状,参数1:行数,参数2:列数,参数3:颜色。
img2.shape
image.png
- 查看图片数组的元素
img2
image.png
- 将图片左右进行反转
plt.imshow(img2[:,::-1,:])
image.png
(8)对图片进行裁剪
#图片裁剪功能
plt.imshow(img2[200:550,100:450,:])
image.png
网友评论