Numpy是一个内置的数学数据库,很多知识应该是涉及到高数的,但是无奈很多我已经不记得了。只能介绍一些我了解的了。
首先导入数据包:
import numpy as np
可以尝试一下矩阵和数列:
dtype是表示数据类型的:
int8整数 | float16浮点数 | object对象类型 |
uint8整数 | complex64复数 | string_字符串 |
随机生成数列:
np.zeros((6,3)) 生成6行3列的0数组
np.ones((2,3)) 生成2行3列的1数组
np.eye(5,3) 生成5行3列的1和0数组
生成序列:
np.arange(2, 10, 2) 生成2-10左闭右开的数列,步长为2。
等差数列:
a = np.linspace(1,10,num=5) 生成1-10的等差数列,5个数。
注意:ndarray的列表必须是同类型的,而python的列表可以是不同类型的。比如文字和数字同时在一个序列里面。
运算:
对于numpy数据包里面可以直接运算,数列和数列中1对1相乘。
a = np.array([1,2,3])
print(a * a)
print(a + a)
print(1/a)
a=np.arange(10)
求平方根 print(np.sqrt(a)) |
求e的幂次 print(np.exp(a)) |
numpy算术函数 a= np.arange(1, 11) * np.arange(1, 11) b= np.arange(1, 11) |
加法运算 c = np.add(a, b) |
减法 c = np.subtract(a, b |
乘法 c = np.multiply(a, b) |
除法 c = np.divide(a,b) |
求最大值 c = np.maximum(a, b) |
求倒数 c = np.reciprocal(a) |
指数运算 c = np.power(b, 2) |
三角函数 - sin a = np.array([0,30,45,60,90]) c = np.sin(a*np.pi/180) |
三角函数 - cos c = np.cos(a*np.pi/180) |
dot 函数 dot是内积的意思。0*0+1*1+2*2=5 还可以矩阵相乘: 矩阵1: 1 2 * 1 2 3 4 * 3 4=横着的1 2 乘以竖着的1 3 ,所以第一个返回了7。第二个是横着的1 2 乘以竖着的2 4 ,所以返回了10。以此类推。 |
数组切片:
一维数组和列表差不多,那就是二维数组了。
arr2d = np.arange(9).reshape((3,3))
# 获取第2行数据,是一个一维数组
arr2d[2]
# 获取第0行第2列,是一个数值
arr2d[0][2]
# 另外一种方式获取第0行第2列
arr2d[0, 2]
# 使用数组作用索引,会返回一个矩阵数字,它的组合是第一个框里面的一个和第二个框里面的一个构成第一个数字的索引。
arr2d[[0, 1], [1, 2]]
# 数组的切片:数组名[行,列]。
# 选择前2行数据
arr2d[:2]
# 选择前2行,后2列数据
arr2d[:2, 1:]
函数:
计算平均值 | arr = np.array([3, 2, 4, 1]) arr.mean() |
求和 | arr.sum() |
方差 | arr.std() |
最大值 | arr.max() |
最小值 | arr.min() |
最大值所在的位子 | arr.argmax() |
最小值所在的位子 | arr.argmin() |
累计求和 | arr.cumsum() |
也是累计求和 | np.add.accumulate(arr) |
大于1的合计 | (arr>1).sum() |
任何大于1的数 | (arr>1).any() |
所有大于一的数 | (arr>1).all()
|
好烦啊,不想分享了,今天你们都学废了吧!