numpy :numerical python,多用于多维数组执行计算
创建数组
一般创建数组有三种方式:
- numpy内部功能函数
- 从python列表转换
- numpy内部功能函数
- 使用特殊的库函数
1.指定数据
np.full((a,b),k)生成填充k的a * b数组
np.eye(n,n)生成n * n,对角线为1的数组
np.linspace(a,b,num=k)
返回均匀间隔的数据[a,a+(b-a)/(k-1) …]
2.初始化
np.zeros(2,2)生成2* 2的0数组
np.ones(2,3)生成2* 3的1数组
np.empty(2,3)生成2 * 3的随机数数组
np.random.random(2,3)生成2* 3的随机数组
3.np.arange(n)
创建以0-n-1的一维数组
4.由一维数组变为2维数组
a = np.arange(20).reshape(4,5)
则声称4* 5的二维数组
- 从python列表转换
np.array([1,2,3,4,5])
即将列表传递给np.array - 使用特殊的库函数
如创建0-1填充的数组,使用random函数
np.random.random((2,2))
数组操作
array1* array2表示数组间字符相乘,即逐元素乘法
array1.dot(array2)表示矩阵乘法
数组属性
type(a)为ndarray
array.shape表示形状(行* 列)
array.size表示元素数
array.itemsize表示每项占用的字节数
array.dtype表示数组的数据类型
例数据类型为int 64 有64位,一个字节为8位,64/8=8得到每项占用的字节数
array.ndim表示属性,即数组的维数
array.nbytes数组中的所有数据消耗掉的字节数
array.sum; array.min; array.max字面功能
array.cumsum
花式索引
a = []
b = [1,2,3]
a[b]返回索引为1,2,3的元素
缺省索引
array[:5]
array[a>=5]
整数数组索引
a = np.array()
print(a[[1,0,1],[1,0,0]])
将得到[(1,1),(0,0),(1,0)]
where函数
根据条件返回数组中的值的方法
a = np.arange(0,10)
b = np.where(a>5) b = (array[6,7,8,9],int 64)
c = np.where(a>5)[0] c = [6,7,8,9]
np.tile(array1,tuple或常数)
若为常数,则一行重复次数
a = np.array([1,0,1])
np.tile(a,2) = array([1,0,1,1,0,1,1,0,1])
若为tuple,
np.tilt(a,(3,1))表示得到3行1列
np.tile(a,(1,3))表示得到1行3次
构造向量
v= np.array([1],[2],[3])
方便的方法是转置相应的行向量
v= np.transpose(np.array([1,2,3]))
求解方程组
Ax = b
已知A,b求x
x = np.linalg.solve(A,b)
数组a和b之间的欧式距离
dist = np.linalg.norm(a-b)