numpy模块、matplotlib模块、pandas模块
1. numpy模块
numpy模块的作用
用来做数据分析,对numpy数组(既有行又有列)——矩阵进行科学计算
实例
lt1 = [1, 2, 3] # n个元素
lt2 = [4, 5, 6] lt = []
for i in range(len(lt1)): # O(n)
lt.append(lt1[i] * lt2[i]) print(lt) import numpy as np # 约定俗成的 arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print(arr1 * arr2) # gpu --> 图形显卡 # 创建numpy数组 --> 可变 # 一维数组(不在讨论范围内)
arr = np.array([1, 2, 4])
print(type(arr), arr) # 二维数组(******)
arr = np.array([
[1, 2, 3],
[4, 5, 6]
])
print(arr) # 三维数组(不在讨论范围内)--》tensorflow
arr3 = np.array([
[[1, 2, 3],
[4, 5, 6]],
[[1, 2, 3],
[4, 5, 6]],
])
print(arr) # numpy数组的属性 arr = np.array([
[1, 2, 3],
[4, 5, 6]
]) # T 数组的转置(对高维数组而言) --> 行列互换,转置
print(arr, '\n', arr.T) # dtype 数组元素的数据类型,numpy数组是属于python解释器的;int32/float64属于numpy的
print(arr.dtype)
'''
# 定制化的科学计算机
11111111111111111111111111111111111111111
'''
# size 数组元素的个数
print(arr.size)
# ndim 数组的维数
print(arr.ndim)
print(arr3.ndim)
# shape 数组的维度大小(以元组形式)
print(arr.shape[0])
print(arr.shape[1])
# astype 类型转换
arr = arr.astype(np.float64)
print(arr) # 切片numpy数组
lt = [1, 2, 3] print(lt[:]) arr = np.array([
[1, 2, 3],
[4, 5, 6]
]) print(arr[:, :]) # 行,列 print(arr[0, 0]) print(arr[0, :]) print(arr[:, -2:]) # 逻辑取值
print(arr[arr > 4]) # 赋值
lt = [1, 2, 3] lt[:] = [0, 0, 0]
print(lt) arr = np.array([
[1, 2, 3],
[4, 5, 6]
]) arr[0, 0] = 0
print(arr) arr[0, :] = 0
print(arr) arr[:, :] = 0
print(arr) # 数组的合并 arr1 = np.array([
[1, 2, 3],
[4, 5, 6]
]) arr2 = np.array([
[7, 8, 9],
['a', 'b', 'c']
]) print(np.hstack((arr1, arr2))) # 只能放元组 print(np.vstack((arr1, arr2))) print(np.concatenate((arr1, arr2), axis=1)) # 默认以列合并 # 0表示列,1表示行 # 通过函数创建numpy数组 print(np.ones((2, 3))) print(np.zeros((2, 3))) print(np.eye(3, 3)) print(np.linspace(1, 100, 10)) print(np.arange(2, 10)) arr1 = np.zeros((1, 12))
print(arr1.reshape((3, 4))) # 重构形状 # numpy数组运算 # +-*'
arr1 = np.ones((3, 4)) * 4
print(arr1) # numpy数组运算函数 print(np.sin(arr1)) # 矩阵运算--点乘 arr1 = np.array([
[1, 2, 3],
[4, 5, 6]
]) arr2 = np.array([
[1, 2],
[4, 5],
[6, 7]
])
# 2* 3 3*2
print(np.dot(arr1, arr2)) # 求逆
arr = np.array([[1, 2, 3], [4, 5, 6], [9, 8, 9]])
print(np.linalg.inv(arr)) # numpy数组数学和统计方法
print(np.sum(arr[0, :])) # numpy.random生成随机数(******)
print(np.random.rand(3, 4)) print(np.random.random((3, 4))) # np.random.seed(1)
print(np.random.random((3, 4))) s = np.random.RandomState(1)
print(s.random((3, 4))) arr = np.array([[1, 2, 3], [4, 5, 6], [9, 8, 9]])
np.random.shuffle(arr)
print(arr) # 针对一维
print(np.random.choice([1, 2, 3], 1)) # 针对某一个范围
print(np.random.randint(1, 100, (3, 4)))
2. matplotlib模块
matplotlib模块的作用
画图(画各种与数据相关的图)
实例
# 条形图
# from matplotlib import pyplot as plt # 约定俗成
# from matplotlib.font_manager import FontProperties # 修改字体
#
# font = FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
#
# plt.style.use('ggplot') # 设置背景
#
# clas = ['3班', '4班', '5班', '6班']
# students = [50, 55, 45, 60]
# clas_index = range(len(clas))
#
# # [0,1,2,3] [50,55,45,60]
# plt.bar(clas_index,students,color='darkblue')
#
# plt.xlabel('学生',fontproperties=font)
# plt.ylabel('学生人数',fontproperties=font)
# plt.title('班级-学生人数',fontproperties=font,fontsize=20,fontweight=25)
# plt.xticks(clas_index,clas,fontproperties=font)
#
# plt.show() # # 直方图
# import numpy as np
# from matplotlib import pyplot as plt # 约定俗成
# from matplotlib.font_manager import FontProperties # 修改字体
#
# font = FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
#
# plt.style.use('ggplot')
#
# x1 = np.random.randn(10000)
#
# x2 = np.random.randn(10000)
#
# fig = plt.figure() # 生成一张画布
# ax1 = fig.add_subplot(1, 2, 1) # 1行2列取第一个
# ax2 = fig.add_subplot(1, 2, 2)
#
# ax1.hist(x1, bins=50,color='darkblue')
# ax2.hist(x2, bins=50,color='y')
#
# fig.suptitle('两个正太分布',fontproperties=font,fontsize=20)
# ax1.set_title('x1的正太分布',fontproperties=font) # 加子标题
# ax2.set_title('x2的正太分布',fontproperties=font)
# plt.show() # 折线图
#
# import numpy as np
# from matplotlib import pyplot as plt # 约定俗成
# from matplotlib.font_manager import FontProperties # 修改字体
#
# font = FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
#
# plt.style.use('ggplot')
#
# np.random.seed(10)
# x1 = np.random.randn(40).cumsum()
# x2 = np.random.randn(40).cumsum()
# x3 = np.random.randn(40).cumsum()
# x4 = np.random.randn(40).cumsum()
#
# plt.plot(x1, c='r', linestyle='-', marker='o', label='红圆线')
# plt.plot(x2, color='y', linestyle='--', marker='*', label='黄虚线')
# plt.plot(x3, color='b', linestyle='-.', marker='s', label='蓝方线')
# plt.plot(x4, color='black', linestyle=':', marker='s', label='黑方线')
# plt.legend(loc='best', prop=font) # 显示label
# plt.show() # 散点图+直线图
import numpy as np
from matplotlib import pyplot as plt # 约定俗成
from matplotlib.font_manager import FontProperties # 修改字体 font = FontProperties(fname='C:\Windows\Fonts\simsun.ttc') plt.style.use('ggplot') fig = plt.figure()
ax1 = fig.add_subplot(1, 2, 1)
ax2 = fig.add_subplot(1, 2, 2) x = np.arange(20)
y = x ** 2 x2 = np.arange(20)
y2 = x2 ax1.scatter(x, y, c='r', label='红')
ax1.scatter(x2, y2, c='b', label='蓝') ax2.plot(x, y)
ax2.plot(x2, y2) fig.suptitle('两张图', fontproperties=font, fontsize=15)
ax1.set_title('散点图', fontproperties=font)
ax2.set_title('折线图', fontproperties=font)
ax1.legend(prop=font)
plt.show()
3. pandas模块
pandas模块的作用
操作各种文本文件(如 excel / json / sql / ini / csv 等)
实例
# import pandas as pd
#
# df = pd.read_csv('test.csv',header=None)
# df.to_excel('test.xls') # pd从excel中读取 DataFrame数据类型
import numpy as np
import pandas as pd np.random.seed(10) index = pd.date_range('2019-01-01', periods=6, freq='M')
print(index)
columns = ['c1', 'c2', 'c3', 'c4']
print(columns)
val = np.random.randn(6, 4)
print(val) df = pd.DataFrame(index=index, columns=columns, data=val)
print(df) # 保存文件,读出成文件
df.to_excel('date_c.xlsx') # 读出文件
df = pd.read_excel('date_c.xlsx', index_col=[0])
print(df) print(df.index)
print(df.columns)
print(df.values) print(df[['c1', 'c2']]) # 按照index取值
# print(df['2019-01-31'])
print(df.loc['2019-01-31'])
print(df.loc['2019-01-31':'2019-05-31']) # 按照values取值
print(df)
print(df.iloc[0, 0]) df.iloc[0, :] = 0
numpy模块、matplotlib模块、pandas模块的更多相关文章
- numpy,matplotlib,pandas
目录 numpy模块 numpy简介 numpy使用 matplotlib模块 条形图 直方图 折线图 散点图+直线图 pandas模块 numpy模块 numpy简介 numpy官方文档:https ...
- python-数据分析与展示(Numpy、matplotlib、pandas)---3
笔记内容整理自mooc上北京理工大学嵩天老师python系列课程数据分析与展示,本人小白一枚,如有不对,多加指正 0.pandas基于Numpy实现的,前者注重应用,后者注重结构 1.Series类型 ...
- python-数据分析与展示(Numpy、matplotlib、pandas)---2
笔记内容整理自mooc上北京理工大学嵩天老师python系列课程数据分析与展示,本人小白一枚,如有不对,多加指正 1.python自带的图像库PIL 1.1常用API Image.open() ...
- python-数据分析与展示(Numpy、matplotlib、pandas)---1
笔记内容整理自mooc上北京理工大学嵩天老师python系列课程数据分析与展示,本人小白一枚,如有不对,多加指正 1.ndarray对象的属性 .ndim..shape..size(元素个数,不是占用 ...
- numpy最后一部分及pandas初识
今日内容概要 numpy剩余的知识点 pandas模块 今日内容详细 二元函数 加 add 减 sub 乘 mul 除 div 平方 power 数学统计方法 sum 求和 cumsum 累计求和 m ...
- 模块讲解---numpymo模块,matplotlib模块,pandas模块
目录 numpy模块 matplotlib模块 pandas模块 numpy模块 numpy模块:用来做数据分析,对numpy数组(既有行又有列)--矩阵进行科学运算 在使用的时候,使用方法与其他的模 ...
- Python 数据处理扩展包: numpy 和 pandas 模块介绍
一.numpy模块 NumPy(Numeric Python)模块是Python的一种开源的数值计算扩展.这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list str ...
- numpy模块&pandas模块
目录 numpy模块 pandas模块 numpy模块 import pandas as pd import numpy as np df=pd.Series(np.array(['a','b'])) ...
- 使用Python的pandas模块、mplfinance模块、matplotlib模块绘制K线图
目录 pandas模块.mplfinance模块和matplotlib模块介绍 pandas模块 mplfinance模块和matplotlib模块 安装mplfinance模块.pandas模块和m ...
随机推荐
- 报错:Original error: Could not proxy command to remote server. Original error: Error: read ECONNRESET
问题:Appium的android真机启动手机时,会遇到以下问题: An unknown server-side error occurred while processing the command ...
- Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)
一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...
- bootstrap select2控件
- eventfd(2) 结合 select(2) 分析
本文代码选自内核 4.17 eventfd(2) - 创建一个文件描述符用于事件通知. 使用 源码分析 参考 #include <sys/eventfd.h> int eventfd(un ...
- GIS学习之栅格数据
栅格数据用一个规则格网来描述与每一个格网单元位置相对应的空间现象特征的位置和取值.在概念上,空间现象的变化由格网单元值的变化来反映.地理信息系统中许多数据都用栅格格式来表示.栅格数据在许多方面是矢量数 ...
- python 并发编程 多线程 信号量
一 信号量 信号量也是一把锁,可以指定信号量为5,对比互斥锁同一时间只能有一个任务抢到锁去执行,信号量同一时间可以有5个任务拿到锁去执行 如果说互斥锁是合租房屋的人去抢一个厕所,那么信号量就相当于一群 ...
- windows jenkins 发布 springboot项目脚本
windows jenkins 发布 springboot项目脚本 1.关闭现有程序 (按端口关闭) [与按应用关闭 二选一] @echo off for /f "tokens=1-5&q ...
- 小记---------Hadoop的MapReduce基础知识
MapReduce是一种分布式计算模型,主要用于搜索领域,解决海量数据的计算问题 MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算. 两 ...
- keil格式化项目代码
有时候需要用到一个功能,就先会在网上找到对应的程序,但是百度直接拿来的程序通常不是很规范.想着keil5要是有一个自动格式化代码的功能就好啦,上网一查还真有!需要一些设置如下(keil4与keil5都 ...
- Java Web开发技术教程入门-初识动态网页
这段时间学校搞了一个"阅战阅勇"的阅读活动,奖品还是挺丰富的~于是,奔着这些奖品,我去图书馆借了这本<Java Web开发技术教程>.一是为了那些丰富的奖品,二是为了回 ...