使用python进行数据分析

Numpy

1
2
3
4
5
6
7
arr = np.array([]) # 元组数组也行,转为ndarray
arr = np.array([[][]]) # 三维的顺序是(z,x,y)
arr = np.zeros(3) # ones同,empty同(返回未初始化的垃圾值)
arr = np.zeros((2,3))
arr = np.arange(10) # 0~9
arr = np.zeros_like(arr0) # 复制arr0形状,值全为0,ones_like同,empty_like同
arr = np.eye(n) # 创建n*n单位矩阵
1
dtype用默认np.float64(f8)、int32(i4)等python标准的精度兼容
1
+ - * / **(指数运算)运算作用到每个元素

所有切片都是原数组的视图,不是副本,对切片进行赋值即对原数组操作,arr2=arr1也是视图

要想获得切片的副本需要显示的赋值,即arr1=arr.copy()

1
2
3
4
5
6
一维数组的切片
arr[5]、arr[5:8]、arr[:5]、arr[:]
arr1 = arr[2:4] # arr=[0,1,2,3,4,5]
arr1[1] = 10 # arr=[0,1,2,10,4,5]
二维数组、三维数组的索引与切片同,可以看做是对列表操作
花式索引arr[4,3,0,6]、arr[[4,3,0,6]]
1
2
np.random
randn(m,n) # 生成m*n正态分布数据
1
2
3
arr.reshape((m,n)) # 将一维数组变成m*n二维数组 # 都是视图操作
arr.T # 转置
np.dot(arr.T,arr) # 计算arr内积(矩阵乘法)
1
np.where是一个利器