科学计算和可视化

Posted 007abc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了科学计算和可视化相关的知识,希望对你有一定的参考价值。

Numpy
定义:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。它主要用于数组计算,包括:

一个强大的N维数组对象 ndarray
广播功能函数
整合 C/C++/Fortran 代码的工具
线性代数、傅里叶变换、随机数生成等功能
1、ndarray : ndarray是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。创建一个 ndarray 只需调用 NumPy 的 array 函数即可。

2、参数说明:

名称 描述
object 数组或嵌套的数列
dtype 数组元素的数据类型,可选
copy 对象是否需要复制,可选
order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok 默认返回一个与基类型一致的数组
ndmin 指定生成数组的最小维度

 

 

 

 

 

 

 

 

实例:

技术图片

 

 

3、数据类型

名称 描述
bool_ 布尔型数据类型(True 或者 False)
int_ 默认的整数类型(类似于 C 语言中的 long,int32 或 int64)
intc 与 C 的 int 类型一样,一般是 int32 或 int 64
int32 整数(-2147483648 to 2147483647)
uint8 无符号整数(0 to 255)
float_ float64 类型的简写
complex_ complex128 类型的简写,即 128 位复数

numpy.dtype(object, align, copy) :  object - 要转换为的数据类型对象; align - 如果为 true,填充字段使其类似 C 的结构体; copy - 复制 dtype 对象 ,如果为 false,则是对内置数据类型对象的引用。

实例:

          技术图片

 

4、数组属性

(1)numpy 数组的维数称为秩(rank),秩就是轴的数量,即数组的维度,一维数组的秩为 1,二维数组的秩为 2,以此类推。每一个线性的数组称为是一个轴(axis),也就是维度(dimensions)。比如说,二维数组相当于是两个一维数组,其中第一个一维数组中每个元素又是一个一维数组。

属性 说明
ndarray.ndim 秩,即轴的数量或维度的数量
ndarray.shape 数组的维度,对于矩阵,n 行 m 列
ndarray.size 数组元素的总个数,相当于 .shape 中 n*m 的值
ndarray.dtype ndarray 对象的元素类型
ndarray.real(imag) ndarray元素的实(虚)部
ndarray.itemsize ndarray 对象中每个元素的大小,以字节为单位

实例:

        技术图片

 

 

5、创建数组

  • numpy.empty 方法用来创建一个指定形状(shape)、数据类型(dtype)且未初始化的数组       numpy.empty(shape, dtype = float, order = ‘C‘)
  • numpy.zeros  创建指定大小的数组,数组元素以 0 来填充      numpy.zeros(shape, dtype = float, order = ‘C‘)

  • numpy.ones  创建指定形状的数组,数组元素以 1 来填充       numpy.ones(shape, dtype = None, order = ‘C‘)

       技术图片

 

 numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个

       技术图片

 

 numpy.arange  函数创建数值范围并返回 ndarray 对象  numpy.arange(start, stop, step, dtype)    (start:起始值,默认为0 ;stop:终止值(不包含) step:步长,默认为1; dtype:返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。)

        技术图片

 

 6、切片和索引: slice 函数

       技术图片

 

 7、广播:对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。

       技术图片

 

 Matplotlib:

         技术图片

 实例:

import numpy as np
from matplotlib import pyplot as plt
x = np.arange(1,11)
y = 2 * x - 1
plt.title("demo")
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y)
plt.show()

效果:

        技术图片

 

雷达图:

           

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams[font.family]=SimHei
matplotlib.rcParams[font.sans-serif] = [SimHei]
labels = np.array([第一次, 第二次, 第三次, 第四次, 第五次,第六次])
nAttr = 6
data = np.array([50,91,80,100,70,40]) 
angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False)
data = np.concatenate((data, [data[0]]))
angles = np.concatenate((angles, [angles[0]]))
fig = plt.figure(facecolor="white")
plt.subplot(111, polar=True)
plt.plot(angles,data,bo-,color =g,linewidth=2)
plt.fill(angles,data,facecolor=g,alpha=0.25)
plt.thetagrids(angles*180/np.pi, labels)
plt.figtext(0.52, 0.95, ljt的成绩表, ha=center)
plt.grid(True)
plt.show()

结果显示:

             技术图片

 

 

         

 

以上是关于科学计算和可视化的主要内容,如果未能解决你的问题,请参考以下文章

科学计算和可视化

科学计算和可视化

科学计算和可视化

科学计算可视化

Python科学计算与可视化 C1

Python科学计算与可视化 C1