一、数组
1. 用numpy定义数组
# 定义两个数组
from numpy import array
mm = array((1, 1, 1))
pp = array((1, 2, 3))
2. 对数组进行运算
数组运算:相加、乘系数、相乘、平方
两个数组相加:
pp+mm
# 输出 array([2,3,4])
数组乘以一个系数:
pp*2
# 输出 array([2,4,6])
两数组对应元素相乘:
from numpy import array
a1 = array([1, 2, 3])
a2 = array([0.3, 0.2, 0.3])
a1 * a2
# 输出:array([ 0.3, 0.4, 0.9])
数组按元素求平方:
pp**2
# 输出 array([1,4,9])
3. 访问数组元素
pp[1]
# 输出2
4. 多维数组
# 定义一个多维数组
from numpy import array
jj = array([[1, 2, 3], [1, 1, 1]])
注:意思是创建下面这样一个多维数组
jj =
获取该数组(第一行第二列)的元素:
jj[0][1]
# 输出2
也可以用逗号间隔的方式:
jj[0, 1]
# 输出2
二、矩阵
1. 创建矩阵两种方式
方法一:使用mat
from numpy import mat
ss=mat([1, 2, 3])
print(ss)
# 输出: matrix([[1, 2, 3]])
方法二:使用matrix
>>> from numpy import matrix
>>> mm=matrix([1,2,3])
>>> mm
matrix([[1, 2, 3]])
2. 访问矩阵元素:
取出具体某个元素:根据行号和列号
>>> mm[0, 1]
2
取出某一行的所有元素:根据行号(取出矩阵第二行的元素, 用行号和冒号
>>> jj[1, :]
matrix([[8, 8, 8]])
取出第一行的第1列和第2列的元素:
>>> jj[0, 0:2]
matrix([[1, 2]])
# 注: 范围0:2表示从 0 取到 1
3. 将列表转换成矩阵:
>>> pyList = [5, 11, 1605]
>>> mat(pyList)
matrix([[ 5, 11, 1605]])
4. 矩阵转置后再相乘:
转置
>>> mm*ss.T
matrix([[14]])
>>> mm
matrix([[1, 2, 3]])
>>> ss.T
matrix([[1],
[2],
[3]])
矩阵元素相乘:mm的每个元素和ss的每个元素相乘
>>> mm
matrix([[1, 2, 3]])
>>> ss
matrix([[1, 2, 3]])
>>> from numpy import multiply
>>> multiply(mm, ss)
matrix([[1, 4, 9]])
5. 显示矩阵的行数和列数(用shape查看矩阵是几行几列的):
>>> from numpy import shape
>>> shape(mm)
(1, 3)
>>> shape(ss.T)
(3, 1)
定义一个矩阵然后查看行数和列数
>>> jj = mat([[1, 2, 3], [8, 8, 8]])
>>> shape(jj)
(2, 3)
6. 求矩阵均值:
>>> dd.mean()
3.3333333333333335
7. 其他
1) 排序:注意sort()排序后原数组已改变
>>> aa=mat([7, 8, 5])
>>> aa
matrix([[7, 8, 5]])
>>> aa.sort()
>>> aa
matrix([[5, 7, 8]])
2) 排序并显示排序后的序号: 排序完之后原数组不变
>>> dd=mat([4, 5, 1])
>>> dd.argsort()
matrix([[2, 0, 1]])
3) 事实证明多维数组和矩阵基本相同:
>>> qq = array([[1, 2, 3], [8, 8, 8]])
>>> shape(qq)
(2, 3)
类似的内容见:numpy扫盲
更多关于NumPy的内容:Numpy and Scipy Documentation