数据科学基础

一、五个常用python库

Numpy/Scipy/Pandas/Matplotlib/Scikit-learn

1.Numpy

  • N维数组(矩阵),快速高效,矢量数学运算
  • 搞笑的Index,不需要循环
  • 开源免费跨平台

2.Scipy

  • 依赖于Numpy
  • 专为科学和工程设计
  • 实现了多种常用科学计算:线性代数、傅里叶变换、信号和图像处理

3.Pandas

  • 结构化数据分析利器(依赖Numpy)
  • 提供了多种高级数据结构:Time-Series、DataFrame、Panel
  • 强大的数据索引和处理能力

4.Matplotlib

  • Python 2D绘图领域使用最广泛的套件
  • 基本能取代Matlab的绘图功能(散点、曲线、柱形等)
  • 通过mplot3d可以绘制精美的3D图

5.Scikit-learn

  • 机器学习的python模块
  • 建立在scipy之上,提供了常用的机器学习算法:聚类、回归
  • 简单易学的API接口

二、数学基础之矩阵运算

1.基本概念

  • 矩阵:矩形的数组,即二维数组。其中向量和标量都是矩阵的特例
  • 向量:是指1xn或者nx1的矩阵
  • 标量:1x1的矩阵
  • 数组:N维的数组,是矩阵的延伸
特殊矩阵
  • 全0全1矩阵
  • 单位矩阵
    nxn的矩阵对角线上全为1,任何矩阵乘单位矩阵都不变

2.矩阵加减运算

  • 相加,减的两个矩阵必须要有相同的行和列
  • 行和列对应元素相加减

3.数组乘法(点乘)

  • 对应元素的乘法

4.矩阵乘法

  • A为mxp的矩阵,B为pxn的矩阵,mxn的矩阵C为A与B的乘积。

三、数组的创建与访问

1.数组的创建

import numpy as np
list_1 = [1,2,3,4]
arr_1 = np.array(list_1)  # array([1, 2, 3, 4])
list_2 = [5,6,7,8]
arr_2 = np.array(list_1, list_2) 
#array([[1, 2, 3, 4],
#		[5, 6, 7, 8]])
arr_3 = np.zeros(5) # array([0., 0., 0., 0., 0.])
arr_4 = np.zeros([2,3]) #array([[0., 0., 0.],
       					#[0., 0., 0.]])
arr_5 = np.eye(5)
#array([[1., 0., 0., 0., 0.],
#       [0., 1., 0., 0., 0.],
#       [0., 0., 1., 0., 0.],
#       [0., 0., 0., 1., 0.],
#      [0., 0., 0., 0., 1.]])
arr_6 = np.arange() # array([1, 3, 5, 7, 9])

2.数组的访问

arr_2.shape # (2, 4)
arr_2.size # 8
arr_2.dype # dtype('int32')

a = np.arange(10)
a[2]   # 2
a[1:5] # array([1, 2, 3, 4])

b = array([[1, 2, 3],
       [4, 5, 6]])
b[1,0] # 4     第二行第一个元素

c = array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
c[:2,1:]    # 前两行,后两列
# array([[2, 3],
#       [5, 6]])

还有法详见numpy文档

四、数组与矩阵运算

# 创建符合正态分布的一维数组
np.random.randn(10)
# 二行三列的数组,数值在10以内
np.random.randint(10, size = (2,3))
# reshape对数组进行重构
np.random.randint(10, size=20).reshape(4, 5)
# 构建矩阵
np.mat([[1,2,3],[4,5,6]])
# 将数组转为矩阵
A = np.mat(np.random.randint(20, size=(2, 5)))
# 得出数组中的唯一值
np.unique(a)

a = [[11,  7,  8, 13,  3],
       [ 3, 18, 17, 11,  7],
       [ 5,  2,  7,  4,  4],
       [18, 18, 10,  5, 19]])
sum(a)  # 每一行的和
#array([37, 45, 42, 33, 33])
sum(a[1])  # 56  第一行的和
sum(a[:,0])  # 第一列的和

a.max()   # 19 最大值
max(a[0])  # 13 第一行最大值
max(a[:,0])  # 18 第一列最大值

五、序列化对象保存在磁盘中

1.方便读写

python有pickle模块支持保存在磁盘读写,numpy有更方便的方法。

x = np.arange(10)
y = np.arange()
np.save('one_array', x)
c = np.load("one_array.npz")

# 存入多个数组
np.savez('two_array', a=x, b=y)
# windows用!dir查看当前磁盘文件 linux !ls
c = np.load('two_array.npz')
c[a]  # 数组x
c[b]  # 数组y
发布了3 篇原创文章 · 获赞 0 · 访问量 30
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览