科学计算和可视化

一.读书笔记

(1)numpy库

科学计算包,支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成,可与C++/Fortran语言无缝结合

np.array([x,y,z],dtype=int)  从Python 列表和元组创造数组 

np.arange(x,y,i)  创建一个由x到y,以;为步长的数组

np.linspace(x,y,n)  创建一个由x到y,等分成n个元素的数组 

np.indices((m,n))  创建一个m行n列的矩阵 

np.random.rand(m,n)  创建一个㎡行n列的随机数组 

np.ones((m,n),dtype)  创建一个m行n列全1的数组,dtype 是数据类型 

np.empty((m,n),dtype)  创建一个m行n列全0的数组,dtype 是数据类型

ndarray 类

ndarray.ndim   数组轴的个数,也被称作秩 

ndarray.shape   数组在每个维度上大小的整数元组 

ndarray.size   数组元素的总个数 

ndarray.dtype   数组元素的数据类型,dtype 类型可以用于创建数组中

flat #返回

 np.nonzero([1,0,2,0,1,0,4,0])#返回一维数组中非 0 元素的位置索引

 np.dot(A, B)#矩阵相乘

 np.power(x,4)#对x数组的每个值4次方

 np.set_printoptions(precision=2)#对于二维随机数组中各元素,保留其 2 位小数

Z/1e3#科学记数法输出 NumPy(Z) 数组

 a.argsort()#打印各元素在数组中升序排列的索引

a.real #属性,数组a的实部

a.imag #属性,数组a的虚部

numpy.linalg.inv()# 函数计算矩阵的乘法逆矩阵。

numpy.linalg.solve() #函数给出了矩阵形式的线性方程的解。

umpy.matlib.eye() #函数返回一个矩阵,对角线元素为 1,其他位置为零。

np.c_[M1, M2]#按列连接两个数组

np.r_[M1, M2]#按行连接两个数组

(2)matplotlib库

plt.figure(figsize-None,facecolor=None)  创建一个全局绘图区域 

plt.axes(rect,axisbg='w")  创建一个坐标系风格的子绘图区域 

plt.subplot(nrows,ncols,plot_number)  在全局绘图区域中创建一个子绘图区城 

plt.subplots_adjust()   调整子图区域的布局

plt.legend()   在绘图区域中方式绘图(也称图注)

plt.show()  显示创建的绘图对象 

plt.matshow()   在窗口显示数组矩阵 

 plt.imshow()  在 axes 上显示图像

plt.imsave()  保存数组为图像文件 

plt.imread()  从图像文件中读取数组

 matplotlib.pyplot 模块可以画折线图,分为两个步骤,分别是 pyplot.plot() 和 pyplot.show() ,前者负责画图,后者将画好的图展示出来。

 pyplot.plot( Series1 , Series2 ) 以 Series1 作为横坐标, Series2 作为纵坐标画出折线图;

 在执行 2 中的函数后,可以使用 pyplot.xticks( rotation = 45 ) 将 x 轴的坐标显示逆时针旋转 45 ° ,默认为 0 °,也就是水平的,同理,可以用 pyplot.yticks( rotation = 45 ) 对 y 轴坐标做同样的操作。

 可以使用 pyplot.xlabel( str ) 将 x 轴命名为 str 的值,同理可以用 pyplot.ylabel( str ) 将 y 轴命名为 str 的值。

可以使用 pyplot.title( str ) 为画出的折线图命名。

二.成绩雷达图

Author: 东锦林

'''
import numpy as np
import matplotlib.pyplot as plt

#标签
labels = np.array(['第一周','第二周','第三周','第四周','第五周','第六周'])
#数据个数
dataLenth = 6
#数据
data = np.array([9.0,9.1,9.2,9.0,9.7,8.8])

angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)
data = np.concatenate((data, [data[0]])) # 闭合 # #将数据结合起来
angles = np.concatenate((angles, [angles[0]])) # 闭合

fig = plt.figure()
ax = fig.add_subplot(121, polar=True)# polar参数!!代表画圆形!!!!
#111代表总行数总列数位置
ax.plot(angles, data, 'bo-', linewidth=1)# 画线四个参数为x,y,标记和颜色,闲的宽度
ax.fill(angles, data, facecolor='r', alpha=0.1)# 填充颜色和透明度
ax.set_thetagrids(angles * 180/np.pi, labels, fontproperties="SimHei")
ax.set_title("东锦林的成绩表\n2019310143135", va='baseline', fontproperties="SimHei")

ax.set_rlim(0,10)
ax.grid(True)
plt.show()

 

三.数学规律

x+y=1

题目:|x| + |y| = 1

 1 import numpy as np
 2 import matplotlib.pyplot as plt
 3 
 4 x = np.arange(-1.1, 1.1, .01)
 5 y = np.arange(-1.1, 1.1, .01)
 6 x, y = np.meshgrid(x, y)
 7 
 8 f = np.abs(x) + np.abs(y) - 1
 9 plt.figure()
10 plt.contour(x, y, f, 0,)
11 plt.title(r'$\left|x\right|+\left|y\right|=1$')
12 plt.show()

 

posted @ 2020-05-06 23:09  林锦东  阅读(132)  评论(0)    收藏  举报