又一次,回顾一下numpy,记录如下。
numpy (numerical python),python用来进行科学计算的一个基础库,它包含了大量数学和机器学习的包
The fundamental package for scientific computing with Python
numpy官网:NumPy
numpy的基础,是ndarray(N-dimensional array,N维数组),是一种由同质元素组成的多维数组,元素数量,是事先准备好的。
数组的类型,是由dtype(data-type,数据类型)来指定的,每个ndarray只有一种数据类型。
numpy数据的大小,是创建的时候指定好的。
创建数组
最简单的方式,就是使用array()函数
import numpy as np
a = np.array([1,2,3])
b = np.array([[1,2,3] , [4,5,6]])
b
查看数组的基本信息
## 数组的维数
b.ndim
## 数组的形状,几行几列
b.shape
## 数据元素个数
b.size
数据类型dtype
b.dtype
可以直接查看数组的数据类型
常用初始化函数
numpy.zeros
(
shape,
dtype=float,
order='C')
指定数组大小,生成零值数组
np.zeros(3)
np.ones((4,4))
np.ones(5)
numpy.arange
([
start, ]
stop, [
step, ]
dtype=None)
根据传入的参数,生成一个数组
start,默认从1开始,stop必须传入,step,默认也是1,[start,stop),根据传入的开始值和结束值,生成数组
np.arange(3)
np.arange(2,5)
np.arange(5,20,2)
numpy.linspace
(
start,
stop,
num=50,
endpoint=True,
retstep=False,
dtype=None,
axis=0)
和arange类似,但是这里的第三个参数,不是step,而是想要将[start,stop)分割成多少份
np.linspace(1,10,2)
np.linspace(5,100,20)
这里生成的都是一维数组,可以结合reshape函数,转换为多维数组
numpy.random.random
(
size=None)
随机数数组,size表示数组个数
np.random.random(3)
np.random.random(10)
基本操作
- 算数运算
a = np.arange(5)
a+4
a-10
a*2
a/3
数组和数值之间的加减乘除
数组和数组之间,同样可以进行四则运算
b = np.linspace(10,30,5)
a+b
a-b
a*b
a/b
数组之间的加减乘除,都是按元素位置匹配对应的
这里的乘法,可能要关注一下,这里是元素间的乘法
如果要求矩阵积,也就是矩阵相乘,这里需要保证第一个矩阵的列数等于第二个矩阵的行数
a = np.random.random(6).reshape((2,3))
b = np.random.random(6).reshape((3,2))
np.dot(a,b)
a.dot(b)