1.numpy 的基础是ndarray对象(N维数组),数据类型由dtype(data-type)决定。注意:每个ndarray都有一个唯一确定的dtype类型。即使没有显示定义,它有默认的类型。
2。a = np.array([1,2,3]) a.shpe 查看多维数组的形状 a.ndim 查看数组的维度 a.size查看数组的个数
3.要会创建数组,一般到二维就可以啦。
4。关于dtype:每个array都有一个确定的dtype,若没显示定义dtype,则默认为列表或者元素序列中的数据类型 举个带声明数据类型的例子:f = np.array([[1,2,3],[4,5,6]],dtype = complex)数据类型是复数。
5。自带的数组创建方法,
np.zeros((3,3)) ----->创建了一个3*3的全零矩阵
np.ones((3,3))------->创建了一个3*3的全1矩阵
np.arange(0,12,3)解释,从0开始到11,间隔3,选择一个数
np.random.random((3,3)) 创建一个3*3的随机矩阵。
6。要知道reshape操作
7。numpy的数学运算,矩阵相乘,注意A*B是逐点运算,线代上的矩阵相乘是np.dot(A,B)
8。对数组操作的通用函数 np.sqrt(a),np.log(a),np.sin(a)
9.索引,切片机制同Python中的列表差不多,具体含义可用到的时候自己查。
10。遍历矩阵有两种:
一种是遍历矩阵的行------》for row in A:
print(row)
另外一种是遍历矩阵的所有元素--------》for r in A.flat:
print(r)
注:A.flat 是把A矩阵展平
11。条件和布尔数组
例如a = np.array([[1,2,3],[4,5,6]])
a >3 输出一个布尔值的矩阵
与a[a>3] 输出满足条件的数组元素
12矩阵数组连接
A = np.ones((3,3))
B = np.zeros((3,3))
np.vstack((A,B)) ------> 效果是在A矩阵下面插入B矩阵,也就是书上说的垂直插入
np.hstack((A,B)) ---------》效果是在A矩阵的右边插入B矩阵,也就是书上说的水平插入
还有一维数组按列插入,按照行插入。。建议现用现查
13.有聚合就有拆分两个函数:水平切分:np.hsplit(A,2) 把A分为两部分
垂直切分 np.vsplit(A,2) 把A垂直分为两部分 试一下就知道效果
14 要知道numpy 的广播机制------》一句话概括,就是自动补齐计算的维度不匹配问题
numpy 的向量化操作 a * b
15 numpy的副本、视图概念。。现用现查
pandas主要分两大数据结构:Series 和DataFrame
一、Series对象
1。Series对象表示一维数据结构,但是多了一个Index列
例如: s = pd.Series([12,-4,5,7])
0 12
1 -4
2 5
3 7 注:左边一列就是index
还可以自己指定index s = pd.Series([12,-4,7,9],index = ['a','b','c','d'])
可以按照s.values 查看s的数据
s.index查看s的索引
2。选择内部元素 s[2] 也可以按index s['b']
为元素赋值 s[1] = 0 s['a'] = 0
用Numpy数组或者其他Series对象定义新的Series对象
arr = np.array([1,2,3,4])
s = pd.Series(arr)
3.Series筛选元素
s[s>8]
4.Series有数学运算
s/2 等
然而用到numpy库的函数必须指定出np np.log(s)
5使用unique去重 使用isin 判断所属关系
6。NaN Not a number 非数值
使用isnull 和notnull 函数来判断
7。Series用作字典,index是字典的key 值是字典的value