首页 > 其他 > 详细

科学计算和可视化

时间:2020-05-07 01:11:04      阅读:55      评论:0      收藏:0      [点我收藏+]

一、Numpy库

NumPy是Python中科学计算的基础软件包,它提供了众多数学运算工具,这些数学运算工具包括:线性代数中的矩阵和向量运算、傅里叶变换、多维数组运算、数据统计运算以及丰富的数学函数库。在编写机器学习算法时,需要对矩阵、向量进行各种数值计算。这些繁杂的计算都可以交给NumPy来完成;NumPy对数值积分、微分、内插、外推等数学任务的计算也非常有用;在图像处理方面,NumPy也提供了丰富的图像处理函数库来完成图像处理任务,如镜像图像、旋转图像等。

导入Numpy模块

import numpy as np
#
from numpy import *

 

Numpy查看数组属性

数组元素个数:

b.size

数组维度:

b.ndim

数组元素类型

b.dtype

numpy.empty

   
   
   
   
   
方法
描述
ndarray.shape 返回一个包含数组维度的元组,它也可以用于调整数组大小
ndarray.reshape 用来调整数组大小
ndarray.ndim 返回数组的维数
numpy.itemsize 返回数组中每个元素的字节单位长度

 

numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组:

numpy.empty(shape, dtype = float, order = ‘C‘)

运用:

>>> np.array([1, 2, 3, 4, 5])        # 把列表转换为数组
array([1, 2, 3, 4, 5])
>>> np.array((1, 2, 3, 4, 5))        # 把元组转换成数组
array([1, 2, 3, 4, 5])
>>> np.array(range(5))               # 把range对象转换成数组
array([0, 1, 2, 3, 4])
>>> np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组
array([[1, 2, 3],
       [4, 5, 6]])
>>> np.arange(8)                     # 类似于内置函数range()
array([0, 1, 2, 3, 4, 5, 6, 7])
>>> np.linspace(0, 10, 11) # 等差数组,包含11个数
array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
>>> np.linspace(0, 10, 11, endpoint=False) # 不包含终点
array([ 0. , 0.90909091, 1.81818182, 2.72727273, 3.63636364, 4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818, 9.09090909])
>>> np.logspace(0, 100, 10) # 对数数组
array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100])
>>> np.logspace(1,6,5, base=2) # 对数数组,相当于2 ** np.linspace(1,6,5)
array([ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ])
>>> np.zeros(3) # 全0一维数组
array([ 0., 0., 0.])
>>> np.zeros((3,1)) # 全0二维数组,3行1列
array([[ 0.], [ 0.], [ 0.]])
>>> np.zeros((1,3)) # 全0二维数组,1行3列
array([[ 0., 0., 0.]])

Numpy中的索引和切片

import numpy as np

#slice(start,stop, step)

a = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
s = slice(2,7,2)  # 从数组索引为 2开始,到7结束,步长为2  ——>  2 4 6
print a[s]  # [2 4 6]

s2 = slice(3,8,1) #  stop不会包含在内
print(a[s2])# [3 4 5 6 7]

# 我们可以直接将切片数据通过冒号的间隔方式直接传递

b = np.arange(10) # [0 1 2 3 4 5 6 7 8 9]
print(b[2:7:2])  # [2 4 6]

# 如果只输入一个参数,则将返回与索引对应的单个项目

c  = b[3]
print(c) # 3

#  如果使用a:,则从该索引向后的所有项目将被提取。

d = b[3:]
print(d) # [3 4 5 6 7 8 9]

# 如果使用两个参数(以:分隔),则对两个索引(不包括停止索引)之间的元素以默认步骤进行切片。

e = b[3:7]
print(e)  # [3 4 5 6]

# 如果只传冒号 类似与python的拷贝

f = b[:]
print(f) # [0 1 2 3 4 5 6 7 8 9]

 

二、Matplotlib库

matplotlib 是提供数据绘图功能的第三方库,其pyplot 子库主要用于实现各种数据展示图形的绘制:matplotlib 库由一系列有组织有隶属关系的对象构成,这对于基础绘图操作来说显得过于复杂。因此,matplotlib 提供了一套快捷命令式的绘图接口函数,即pyplot 子模块。pyplot 将绘图所需要的对象构建过程封装在函数中,对用户提供了更加友好的接口。pyplot 模块提供一批预定义的绘图函数,大多数函数可以从函数名辨别它的功能。

 

导入Mataplotlib模板

import matplotlib.pyplot as plt
import numpy as np

plt 库的读取和显示函数

函数 描述
plt.legend() 在绘图区域中方式绘图标签(也称图注)
plt.show() 显示创建的绘图对象
plt.matshow() 在窗口显示数组矩阵
plt.inshow() 在axes上显示图像
plt.imsave() 保存数组为图像文件
plt.imread() 从图像文件中读取数组

 

基本图像

fig = plt.figure()    #创建一个新的图像
plt.subplot(2,2,1)  #给图像划分区域
x = np.linspace(0,10,200)
plt.plot(x,x**2,x,x)
plt.subplot(2,2,2)
plt.plot(x,x**3)
plt.subplot(2,1,2)
plt.plot(x,np.sin(x))

plt.show()

正弦波实例

import numpy as np 
import matplotlib.pyplot as plt 
# 计算正弦曲线上点的 x 和 y 坐标
x = np.arange(0,  3  * np.pi,  0.1) 
y = np.sin(x)
plt.title("sine wave form")  
# 使用 matplotlib 来绘制点
plt.plot(x, y) 
plt.show()

 

三、Bingo的成绩

技术分享图片

科学计算和可视化

原文:https://www.cnblogs.com/hwb-znnsyw/p/12839705.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!