仅仅是对书进行简单摘抄笔记.
不对的地方望指出
最后更新 2019-7-28
数据分析
numpy
基础
创建简单数组
函数 | 作用 |
---|---|
arr=np.array(data) | 根据data创建数组 |
arr.ndim | 获取维度 |
arr.shape | 获取形状 |
np.zeros(n) | 创建n个0的数组,n也可以是元组,书P95 |
np.empty(n) | 创建n个空值,n也可以是元组,书P95 |
np.arange(15) | 创建0-14的数组 |
更多函数 | P96 |
ndarray的数据类型
dtype是一个数据类型的对象
主要有浮点,证书,布尔,字符串类型
更详细的类型P97
函数 | 作用 |
---|---|
arr.astype(np.float64) | 将array转换为float64类型 |
注意,在进行转化时会有精度损失
数组和标量之间的运算
arr([[1., 2., 3.],
[4., 5., 6.]])
arr * arr
array([[ 1., 4., 9.],
[16., 25., 36.]])
arr - arr
array([[0., 0., 0.],
[0., 0., 0.]])
1/arr
array([[1. , 0.5 , 0.33333333],
[0.25 , 0.2 , 0.16666667]])
arr ** 0.5
array([[1. , 1.41421356, 1.73205081],
[2. , 2.23606798, 2.44948974]])
基本的索引和切片
切片是跟列表的区别在于,数组切片是原始数组的视图,这意味着数据不会被复制,任何修改都会直接反应到原始的数据源上
# 赋值
arr = ([0,1,2,3,4,12,123,51,23])
arr[5:7] = 12
arr
array([ 0, 1, 2, 3, 4, 12, 12, 51, 23])
# 如果想得到切片的副本,需要使用
arr[5:8].copy()
# 多维度下的索引
data = [[1.,2.,3.],[4.,5.,6.]]
arr = np.array(data)
arr[1]
array([4., 5., 6.])
# 也可以使用逗号
arr[1,2]
6.0
切片索引
data = [[1.,2.,3.],
[4.,5.,6.],
[7.,8.,9.]]
arr[:2]
array([[1., 2., 3.],
[4., 5., 6.]])
arr[:2,1:]
array([[2., 3.],
[5., 6.]])
arr[:,1:]
array([[2., 3.],
[5., 6.],
[8., 9.]])
布尔型索引
names = ['黄小明','佟大为','郭冬临','宋丹丹'