NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵。
1、引入numpy模块
>>> import numpy as np
2、Ndarray对象(NumPy库的基础)
>>> l = [1, 2, 3]
>>> a = np.array(l) #数字 -列表转化为矩阵
# 查看a对象的数据类型
>>> type(a)
numpy.ndarray
# 数据类型(查看a里边的数据类型)
>>> a.dtype
dtype('int32')
# 轴数量 ---维度,几维数组
>>> a.ndim
1
# 数组长度 ---元素个数
>>> a.size
3
# 数组的型 ---行数和列数
>>> a.shape
(3,)
3、定义二维数组
>>> b = np.array([[1.3, 2.4], [0.3, 4.1]])
>>> b.dtype
dtype('float64')
>>> b.ndim
2
>>> b.size
4
>>> b.shape
(2, 2)
4、创建数组
>>> c = np.array([[1, 2, 3], [4, 5, 6]])
array([[1, 2, 3],
[4, 5, 6]])
>>> d = np.array(((1, 2, 3), (4, 5, 6)))
array([[1, 2, 3],
[4, 5, 6]])
>>> e = np.array([(1, 2, 3), [4, 5, 6], (7, 8, 9)])
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
5、数据类型判断
>>> g = np.array([['a', 'b'], ['c', 'd']])
>>> g
array([['a', 'b'],
['c', 'd']],
dtype='<U1')
>>> g.dtype
dtype('<U1')
>>> g.dtype.name
'str32'
>>> f = np.array([[1, 2, 3], [4, 5, 6]], dtype=complex)
>>> f
array([[ 1.+0.j, 2.+0.j, 3.+0.j],
[ 4.+0.j, 5.+0.j, 6.+0.j]])
>>> f.astype('float') #astype转换类型
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
6、创建自定义数组
>>> np.zeros((3, 3)) # 建立一个零矩阵
array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> np.ones((3, 3)) # 建立一个单位阵
array([[ 1., 1., 1.],
[ 1., 1., 1.],
[ 1., 1., 1.]])
>>> np.eye(3) #创建单位阵I(对角线上为1,其余位置为0)
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.]])
>>> np.empty(3) #只分配内存空间,但不填充任何值(填充值比较随机),创建数据接近0
array([ 1., 1., 1.])
>>> np. empty((2, 3))
array([[ 0., 0., 0.],
[ 0., 0., 0.]])
>>> np.arange(0, 10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> np.arange(4, 10)
array([4, 5, 6, 7, 8, 9])
>>> np.arange(0, 12, 3)
array([0, 3, 6, 9])
>>> np.arange(0, 6, 0.6) #前闭后开
array([ 0. , 0.6, 1.2, 1.8, 2.4, 3. , 3.6, 4.2, 4.8, 5.4])
>>> np.arange(0, 12).reshape(3, 4)#3x4矩阵
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> np.linspace(0, 10, 5) #linspace()与arange()非常相似,不同:第三个参数指定分成几个部分,左闭右闭,均分。
array([ 0. , 2.5, 5. , 7.5, 10. ])
>>> np.linspace(0, 10, 12).reshape(4, 3)
array([[ 0. , 0.90909091, 1.81818182],
[ 2.72727273, 3.63636364, 4.54545455],
[ 5.45454545, 6.36363636, 7.27272727],
[ 8.18181818, 9.09090909, 10. ]])
>>> np.random.random(3) #随机数[0.0, 1.0)
array([ 0.94909317, 0.71750078, 0.41642637])
>>> np.random.random((3, 3))
array([[ 0.71603364, 0.55855257, 0.03496732],
[ 0.77959685, 0.3598885 , 0.61941165],
[ 0.531754 , 0.15758114, 0.57497902]])
from numpy import random as np_random
>>> np.random.randint(1, 10, size=3)#起始位置,结束位置,元素个数;左闭右开;当size给定的是tuple,就是矩阵的shape
array([4, 3, 9])