数据分析01Numpy入门

数据科学领域5个最佳Python库

1.Numpy*

N维数组,快速高效,矢量数学运算
高效Index,不需要循环
开源免费,效率与C/Matlab媲美

2.Scipy更高级

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

3.Pandas*

结构化数据分析利器,依赖于Numpy
提供高级数据结构:Time-Series/DataFrame/Panel
强大数据索引和处理能力

4.Matplotlib*

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

5.Scikit-learn,还有TensorFlow

机器学习的Python模块

建立在Scipy之上,常用机器学习算法如聚类,回归
简单易学的API接口

矩阵加减法,是点加上/减去点

矩阵乘法,必须行列相同

Numpy数组的创建

#导入函数
import numpy as np
#定义列表
list_1 = 。。。
list_2 = 。。。
#传入得到一维数组
array_1 = np.array(list_1)
#传入得到一维数组
array_2 = np.array(list_1, list_2)
#数组属性,得到(行数,列数)元组
array_2.shape
#数组属性,得到数组个数行数*列数
array_2.size
#数组属性,得到数组个体数据类型,dtype('数据类型'),取数字最精确的
array_2.dtype
#取顺序数组np.arange(起始, 结束点后一位, 间隔)
array_4 = np.arange(1, 10) 得到:array([1, 2, 3, 4, 5, 6, 7, 8, 9])
array_5 = np.arange(1, 10, 2 ) 得到:array([1, 3, 5, 7, 9])
创建全0矩阵,单位矩阵
array_5 = np.zeros(5) 得到:array([0., 0., 0., 0., 0.])
array_6 = np.zeros([2,3]) 得到:array([[0., 0., 0.], 
                                      [0., 0., 0.]])
array_7 = np.eye(2) 得到:array([[1., 0.], 
                                [0., 1.]])

Numpy数组的访问

一维数组的访问和list切片相同a[n]/a[m:n]

import numpy as np
#多维数组的访问
a = {[[1, 2, 3], [4, 5, 6]]}
a[0][0]
#或者a[0,0]
#得到1

#多维数组的切片
a = {[[1, 2, 3], [4, 5, 6], [7, 8, 9]]}
a[:2,1:]
#得到{[2, 3], [5, 6]}

行列数从0开始a[行数:行数, 列数:列数]

Numpy数组的快速创建

#快速创建数组
import numpy as np
#创建长度为10的一维随机数组,得到的值符合正态分布
np.random.randn(10)得到array([-0.35334806, 0.65539677, -1.68305632, -1.80479294, 2.63772218, -0.88732572, -1.85906511, -0.1509969, 0.78703046, 0.60090397])
#得到10以内的一个整数随机数组,加入size得到数字行与列,一个数代表一维数组多少个数字
np.random.randint(10)
#得到9
np.random.randint(10, size=(2, 3))
'''
得到array([[0, 2, 7],
           [4, 9, 4]])
'''           

np.random.randint(10, size=20).reshape(4, 5)得到一个随机四行五列随机十以内数组

Numpy数组的运算

import numpy as np
a = np.random.randint(10, size=20).reshape(4, 5)
b = np.random.randint(10, size=20).reshape(4, 5)

a + b得到数组加法结果
a - b 得到数组减法结果
a * b 得到数组乘法结果(点乘,对应元素的乘积)
a / b 得到数组除法结果(点除,对应元素的除数,0得到无穷大)

Numpy矩阵的创建

数组装换为矩阵np.mat(a)得到matrix()

import numpy as np
np.mat([[1, 2, 3], [4, 5, 6]])

得到 matrix([1, 2, 3],
[4, 5, 6])
数组的所有创建方法都可以用在矩阵上

Numpy矩阵的运算

import numpy as np
a = np.random.randint(10, size=20).reshape(5, 5)
b = np.random.randint(10, size=20).reshape(5, 5)
A = np.mat(a)
B = np.mat(b)

A + B/A-B和数组结果一致
A * B 得到矩阵乘法结果

Numpy:Array常用函数

import numpy as np
a = np.random.randint(10, size=20).reshape(4, 5)
#数组里面哪些值存在,且列出唯一一行array([])
np.unique(a)
#求所有列对应位置的和
sum(a)
#求某行的和
sum(a[0])
#求整个数组的最大值
a.max()
#求某行的最大值
a.max(a[0])
#求某列的最大值
a.max(a[:,0])

Numpy array的序列化

使用pickle序列化Numpy array

#引入
import numpy as np
import pickle
x = np.arange(10)
#打开一个写二进制的文件
f = open('x.pkl', 'wb')
#写入文件
pickle.dump(x, f)
#读取文件
#打开一个读二进制的文件
f = open('x.pkl', rb')
pickle.load(f)

使用Numpy方法序列化Numpy array

import numpy as np
x = np.arange(10)
#保存
np.save('文件名1', x)     #得到文件:文件名1.npz
#加载
np.load('文件名1.npz')

import numpy as np
x = np.arange(10)
y = np.arange(20)
#保存两个数组
np.savez('文件名2', a=x, b=y)     #得到文件:文件名2.npz
#加载数组
c = np.load('文件名2.npz')
c['a'] 表示x
c['b'] 表示y
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值