NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 
菜鸟教程:https://www.runoob.com/numpy/numpy-tutorial.html
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
菜鸟教程:https://www.runoob.com/numpy/numpy-matplotlib.html

Numpy模块的简单使用
 """
菜鸟教程:https://www.runoob.com/numpy/numpy-tutorial.html
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 """
import numpy as np # pip install numpy # 1.numpy创建的数组类型为<class 'numpy.ndarray'> # (1)创建ndarray一维数组
ndarray_1 = np.array([1, 2, 4, 6])
print(ndarray_1)
# (2)创建ndarray二维数组(如果元素不对称,结果是一维列表数组)
ndarray_2 = np.array([[2, 4, 6], [1, 3, 5]])
print(ndarray_2,type(ndarray_2[1])) # ndarray_2=np.array([[2,4,6],[1,3,5,3]])
# print(ndarray_2,type(ndarray_2))#[list([2, 4, 6]) list([1, 3, 5, 3])] <class 'numpy.ndarray'>
# print(type(ndarray_2[1]))#<class 'list'> # (3)numpy默认ndarray的所有元素的类型是相同的
# 如果传进来的列表中包含不同的类型,则统一为同一类型,优先级:str>float>int
ndarray_3 = np.array([[2, 4, 6], [1, 3, 5]])
print(ndarray_3[1][2], type(ndarray_2[1][2])) # 5 <class 'numpy.int32'> ndarray_3 = np.array([[2, 4.8, 6], [1, 3, 5]])
print(ndarray_3[1][2], type(ndarray_2[1][2])) # 5.0 <class 'numpy.float64'> ndarray_3 = np.array([["a", 4, 6], [1, 3, 5]])
print(ndarray_3[1][2], type(ndarray_2[1][2])) # 5 <class 'numpy.str_'> #(4)numpy创建等差数组np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None) 等差数列
ndarray_4=np.linspace(0,10,num=20)
print(ndarray_4) #(5)numpy创建随机数组np.arange([start, ]stop, [step, ]dtype=None)
ndarray_5=np.arange(0,10,step=2)
print(ndarray_5)
ndarray_5=np.arange(0,10)
print(ndarray_5) #(6)numpy创建随机多维数组np.random.randint(low, high=None, size=None, dtype='l')
#如果指定了随机银子,就不在随机
# np.random.seed(10)#随机因子/时间种子
ndarray_6=np.random.randint(0,10,size=(3,4))#0到10之间3X4的数组
print(ndarray_6)
ndarray_6=np.random.randint(0,100,size=(3,3,3))#0到100之间3X3X3的三维数组
print(ndarray_6) #(7)numpy创建0-1之间的随机小数
ndarray_7=np.random.random()
print(ndarray_7,type(ndarray_7)) #2.ndarray数组的属性 #(8)ndarray数组的大小:ndarray.size
print(ndarray_1.size)
print(ndarray_2.size)
print(ndarray_3.size)
print(ndarray_4.size)
print(ndarray_5.size)
print(ndarray_6.size) #(9)ndarray数组的维度:ndarray.ndim
print(ndarray_1.ndim)
print(ndarray_2.ndim)
print(ndarray_3.ndim)
print(ndarray_4.ndim)
print(ndarray_5.ndim)
print(ndarray_6.ndim) #(10)ndarray数组的形状:ndarray.shape
print(ndarray_1.shape)
print(ndarray_2.shape)
print(ndarray_3.shape)
print(ndarray_4.shape)
print(ndarray_5.shape)
print(ndarray_6.shape) #(11)ndarray数组的元素类型:ndarray.dtype
print(ndarray_1.dtype)
print(ndarray_2.dtype)
print(ndarray_3.dtype)
print(ndarray_4.dtype)
print(ndarray_5.dtype)
print(ndarray_6.dtype) #(12)ndarray类型查看:type()
print(type(ndarray_1))
print(type(ndarray_2))
print(type(ndarray_3))
print(type(ndarray_4))
print(type(ndarray_5))
print(type(ndarray_6)) #3.ndarray数组的基本操作
# 对二维数组中括号第一个参数为行,第二个参数为列;
#对多维数组ndarray[,,,,],中括号中逗号分割的每个数字都指代一个维度 #(13)索引:①一维数组与列表一致;②多维数组与C语言一样
ndarray_13=np.random.randint(0,10,size=(3,4))
print(ndarray_13)#二维数组
print(ndarray_13[1])#获取二位数组第2行
print(ndarray_13[[1,2]])#获取二维数组第2和第3行
print(ndarray_13[1,3])#获取二维数组第2行第4个元素 #(14)切片
ndarray_14=np.random.randint(0,10,size=(5,4))
print(ndarray_14)
print(ndarray_14[:2])#获取二维数组的前两行
print(ndarray_14[:,:2])#获取二位数组的前两列
print(ndarray_14[:2,:2])#获取二位数组的前两行和前两列 print(ndarray_14[::-1])#对二维数组的行进行翻转
print(ndarray_14[:,::-1])#对二位数组的列进行翻转
print(ndarray_14[::-1,::-1])#对二维数组的行和列都进行翻转 #(15)变形:使用ndarray.reshape()函数,注意参数是一个tuple! ndarray_15=np.random.randint(0,10,size=10)
print(ndarray_15)
print(ndarray_15.reshape((2,5)))#一维数组变形成二位数组 ndarray_15=np.random.randint(0,10,size=(3,4))
print(ndarray_15)
print(ndarray_15.reshape((12,)))#二位数组变形成一位数组
print(ndarray_15.reshape((2,6)))#二位数组便形成其它二位数组 #(16)级联操作:对多个ndarray数组进行横向或者纵向的拼接np.concatenate((arr,arr),axis=0) #axis=0 列 1行
ndarray_16=np.random.randint(0,10,size=(3,4))
print(ndarray_16)
print(np.concatenate((ndarray_16,ndarray_16),axis=0))#第一个参数为多个ndarray数组,axis为0表示列级联
print(np.concatenate((ndarray_16,ndarray_16),axis=1))#第一个参数为多个ndarray数组,axis为1表示列级联 #4.ndarray数组的聚合操作
#(17)求和:ndarray.sum([axis=])
ndarray_17=np.random.randint(0,10,size=(3,4))
print(ndarray_17) print(ndarray_17.sum())#无参数默认全部求和
print(ndarray_17.sum(axis=1))#axis为1指定行求和
print(ndarray_17.sum(axis=0))#axis为0指定列求和 #(18)最大值、最小值:ndarray.max()/ndarray.min()
ndarray_18=np.random.randint(0,10,size=(3,4))
print(ndarray_18) print(ndarray_18.max())#默认无参数求数组最大值
print(ndarray_18.max(axis=1))#axis为1指定行求最大值
print(ndarray_18.max(axis=0))#axis为0指定列求最大值 print(ndarray_18.min())#默认无参数求数组最小值
print(ndarray_18.min(axis=1))#axis为1指定行求最小值
print(ndarray_18.min(axis=0))#axis为0指定列求最小值 #(19)平均值:ndarray.mean()
ndarray_19=np.random.randint(0,10,size=(3,4))
print(ndarray_19) print(ndarray_19.mean())#默认无参数求数组平均值
print(ndarray_19.mean(axis=1))#axis为1指定行求平均值
print(ndarray_19.mean(axis=0))#axis为1指定列求平均值 #(19)ndarray数组的其它聚合操作
"""
ndarray.prod()
ndarray.std() 标准差
ndarray.var()
ndarray.argmin()
ndarray.argmax()
ndarray.median()
ndarray.percentile()
ndarray.any() 一些
ndarray.all() 所有
ndarray.power() 幂运算
""" #5.ndarray数组排序:np.sort()与ndarray.sort()都可以,但有区别
ndarray_20=np.random.randint(0,10,size=(3,4))
print(ndarray_20)
print(np.sort(ndarray_20))#默认对行、列顺序排序
print(np.sort(ndarray_20,axis=1))#对行排序
print(np.sort(ndarray_20,axis=0))#对列排序

Numpy简单使用

Matplotlib模块的简单使用
 """
菜鸟教程:https://www.runoob.com/numpy/numpy-matplotlib.html
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。
它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
"""
import numpy as np
import matplotlib.pyplot as plt
#读取显示图片
img_arr=plt.imread('1.png')#读取图片数组
plt.imshow(img_arr)#显示图片
plt.show()
print(img_arr.shape)
#可以直接使用numpy中的数组方法
plt.imshow(img_arr[::-1])#对行进行翻转,图片上下反转
plt.show() plt.imshow(img_arr[:,::-1])#对列进行翻转,图片左右反转
plt.show() plt.imshow(img_arr[::-1,::-1])#对行/列进行翻转,图片完全反转
plt.show() print(img_arr.shape)#三维数组
plt.imshow(img_arr[::-1,::-1,::-1])#对行/列及颜色进行翻转,图片及色彩完全反转
plt.show() #拼图np.concatenate((arr,arr),axis=0) #axis=0 列 1行
img_arr3=np.concatenate((img_arr,img_arr,img_arr),axis=1)#行拼3
img_arr9=np.concatenate((img_arr3,img_arr3,img_arr3),axis=0)#列拼3
plt.imshow(img_arr9)
plt.show() # 绘制图形
import numpy as np
x = np.arange(1, 11)
y = 2 * x + 5
plt.title("Matplotlib demo")
plt.xlabel("x axis caption")
plt.ylabel("y axis caption")
plt.plot(x, y)
plt.show()

Matplotlib简单使用

   效果图:

    

												

数据分析之Numpy、Matplotlib库的更多相关文章

  1. 数据分析与展示——Matplotlib库入门

    Matplotlib库入门 Matplotlib库介绍 Matliotlib库是Python优秀的数据可视化第三方库. Matliotlib库的效果见:http://matplotlib.org/ga ...

  2. numpy, matplotlib库学习笔记

    Numpy库学习笔记: 1.array()   创建数组或者转化数组 例如,把列表转化为数组 >>>Np.array([1,2,3,4,5]) Array([1,2,3,4,5]) ...

  3. NumPy Matplotlib库

    NumPy - Matplotlib Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 ...

  4. 第二周 数据分析之展示 Matplotlib库入门

    Matplotlib库介绍:优秀的数据可视化第三方库 使用:Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发,matplotlib.pyplot是绘制各类可视化图形的命令子库 ...

  5. $python数据分析基础——初识matplotlib库

    基本用法 import numpy as np import matplotlib.pyplot as plt # 年份 year = [1950,1970,1990,2010] # 全球总人口(单位 ...

  6. Python_科学计算平台__pypi体系的numpy、scipy、pandas、matplotlib库简介

    1.numpy--基础,以矩阵为基础的数学计算模块,纯数学 存储和处理大型矩阵. 这个是很基础的扩展,其余的扩展都是以此为基础. 快速学习入口 https://docs.scipy.org/doc/n ...

  7. 在Ubuntu 14.04 64bit上安装numpy和matplotlib库

    原文:http://blog.csdn.net/tao_627/article/details/44004541 按照这个成功安装! 机器学习是数据挖掘的一种实现形式,在学习<机器学习实战> ...

  8. 利用matplotlib库和numpy库画数学图形

    首先,电脑要安装到matplotlib库和numpy库,这可以通过到命令符那里输入“pip install matplotlib ”,两个操作一样 其次,参照下列代码: import numpy as ...

  9. python数据分析基础——numpy和matplotlib

    numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2假如有如下几组体重和身高数据,让求每组数据的BMI值: w ...

  10. 利用Python进行数据分析——重要的Python库介绍

    利用Python进行数据分析--重要的Python库介绍 一.NumPy 用于数组执行元素级计算及直接对数组执行数学运算 线性代数运算.傅里叶运算.随机数的生成 用于C/C++等代码的集成 二.pan ...

随机推荐

  1. thinkphp--create()的使用方法(个人感悟)

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  2. Linux网络管理员:网络概论

    1.TCP/IP网络 包是适合通过网络传输的一小段数据,交换发生于网络的每一个链接点.当不同来源的包必须经过同一条线路传输数据时,这些包将被交替传输. 2.TCP/IP协议组 TCP/IP协议簇是In ...

  3. VS2013 配置全局 VC++目录

    原文链接:https://blog.csdn.net/humanking7/article/details/80391914 也许是我VS2013安装的有问题,每次编译程序都要去 项目属性页-> ...

  4. ExtJS2.0实用简明教程 - Form布局

            Form布局由类Ext.layout.FormLayout定义,名称为form,是一种专门用于管理表单中输入字段的布局,这种布局主要用于在程序中创建表单字段或表单元素等使用.   看下 ...

  5. webpack4.x开发环境配置

    写这篇文章的初衷在于,虽然网络上关于webpack的教程不少,但是大多已经过时,由于webpack版本更新后许多操作变化很大,很多教程的经验已经不适合.当我们使用npm安装webpack时,若不指定w ...

  6. Muduo网络库实战(二):实现服务器与客户端的连接

    1. 方案的确定 1)基本需求 用户1000+, IO压力不大: 多个客户端打开网站,输入查询字符串strclient,发送给服务器=>服务器接收客户端发过来的数据并处理,将结果返回给客户端: ...

  7. 从零搭建Prometheus监控报警系统

    什么是Prometheus? Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统 ...

  8. 基于国内某云的 Domain Fronting 技术实践

    发布时间:2019-12-16 11:30:53 一.简介 Domain Fronting,中文译名 “域前置” 或 “域名前置”,是一种用于隐藏真实C2服务器IP且同时能伪装为与高信誉域名通信的技术 ...

  9. CodeForces - 1245A Good ol' Numbers Coloring (思维)

    Codeforces Round #597 (Div. 2 Consider the set of all nonnegative integers: 0,1,2,-. Given two integ ...

  10. TX2开启最大功耗模式

    我们移植深度学习模型到Jetson TX2,为了获得更好的指标参数,我们需要将TX2开启最大功耗模式. Jetson TX2 工作模式及相应的CPU和GPU频率: 上电时,默认采用最低功耗模式1,风扇 ...