numpy安装与常用的属性方法
最近两个月没有更新博客是因为我在尝试使用keras进行图像识别,然后里面就使用到了numpy,今天我就来写一下numpy为什么在机器学习领域那么使用的那么多,现在我们先来安装一下numpy
简单介绍numpy
numpy 底层采用c 语言编写 它的主要的使用领域是科学技术领域,非常适合做矩阵运算
什么是矩阵? 简单说一下,我们都知道在任何一门编程语言里面都有列表或者数组的概念
也可以叫做向量vector 数组或者列表是一维的就像这个样子[1, 2, 3, 4, 5]而矩阵呢,你可以把它理解为多维的数组大概像这样的[[1 2 3], [4 5 6]] 这就叫做矩阵,而numpy 非常适合做矩阵运算。那这个numpy又是如何跟图像识别关联起来的呢,首先我们来看一张图片,如下图
在我们眼里的图片,可以看到是一只猫,但是计算机如果要做识别,它要怎么看这个图呢。
答案就是把这个图片转为计算机可以识别的样子。怎么转呢,什么样才是计算机可以识别的样子
?
这里我们就需要知道计算机要怎么看图了,我们都知道图像其实是由一个一个的像素点组成的,我们把
像素点使用数值来表达怎么样?使用0-255表示像素点,颜色越深数值越高,反之越浅,就像下面的图片
人类的眼中是这样的(图片来自知乎:https://www.zhihu.com/question/39022858)
计算机眼中是这样的
现在我们知道了计算机可以识别的图像是什么样的了,现在需要解决的问题是,我们有图像了,如何把它转成
计算机可以识别的样子,这里就需要使用python的视觉处理模块啦 cv2 模块
现在我们把刚才是图片转成计算机可以识别的样子
看到了吗,图像被转换成了矩阵!这样就把numpy和机器学习关联起来了,实际上tensorflow等框架在做图像识别的时候,输入的数据就是这样的图像矩阵!! 好啦扯远啦。接下来继续讲numpy
安装numpy(环境Linux)
pip install numpy
常用的属性
1 查看矩阵的数据类型dtype
比如我们查看刚才我们把图片转换成的矩阵数据类型是什么
import numpy as np
import cv2
image = cv2.imread("cat.jpg")
image = np.array(image)
image.dtype
## out ##
dtype('uint8')
2 查看矩阵的大小shape
image.shape
## out ##
(407, 430, 3)
这个407 和 430 代表图像的宽度和高度, 3 代表RGB 三颜色在机器学习里面叫做通道(channel)如果图像是黑白色的 这个就是 1
3 查看矩阵的深度ndim
image.ndim
## out ##
3
常用方法
1 生成随机矩阵
根据给定维度生成[0,1)之间的数据,包含0,不包含1
numpy.random.rand(3, 2)
## out ##
[[0.38723131 0.56080535 0.28986393]
[0.52948079 0.49717751 0.42280896]
[0.51374604 0.56677323 0.90121968]]
2 生成 一维矩阵arange
这个和python 里面的range 方法差不多
numpy.arange(6)
## out ##
array([0, 1, 2, 3, 4, 5])
3 将arange一维矩阵拆分成 n 维矩阵reshape
numpy.arange(6).reshape((2, 3))
## out ##
array([[0, 1, 2],
[3, 4, 5]])
4 创建矩阵
array
创建矩阵时里面的元素数据类型可以制定,使用参数dtype 进行指定
array = numpy.array([[1, 2], [3, 4]])
5 求矩阵最大值,最小值,平均值max
min
mean
numpy.max(array)
numpy.min(array)
numpy.mean(array)
## out ##
4
1
2.5