67. Python基础-数学库(2)

例子:奇异值分解SVD

读取图片,选取前若干值进行展示。任何一个图片都可以看做一个矩阵

安装解释器、Python包、IDE

各种包地址
IDE:

  • 下载anaconda,conda install python=3.7...
  • Pycharm社区版

Numpy和matplotlib.pyplot的使用

  1. 矩阵基础
import numpy as np
import matplotlib.pyplot as plt

x = np.random.rand(10, 2) # 10*2行列
print('x:', x)
print('x[2]: ', x[2]) # 第三行
print('x[2, :]: ', x[2, :]) # 第三行
print('x[[3, 6, 1]]: ', x[[3, 6, 1]]) # 第四行
print('x[:, 0]: ', x[:, 0]) # 第1列
print('x[:, 1]: ', x[:, 1]) # 第2列
67. Python基础-数学库(2)_第1张图片
image.png
  1. matplotlib绘制随机点
import numpy as np
import matplotlib.pyplot as plt

data = np.random.rand(1000, 2)  # 随机产生1000行1列的数组
print('data: ', data)
x = data[:, 0] # 第一列数据
y = data[:, 1] # 第二列数据

plt.plot(x, y, 'go', markersize = 1)
plt.show()
67. Python基础-数学库(2)_第2张图片
image.png
  1. 绘制红色圆形
import numpy as np
import matplotlib.pyplot as plt

data = 2 * np.random.rand(10000, 2) - 1
print('data: ', data)
x = data[:, 0] # 第一列数据
y = data[:, 1] # 第二列数据

# 绘制红色的点圆(由于做表面比例不同,故显示成椭圆)
idx = x ** 2 + y ** 2 < 1
plt.plot(x[idx], y[idx], 'ro', markersize = 1)
plt.show()
67. Python基础-数学库(2)_第3张图片
image.png
  1. 绘制蓝色空心圆
import numpy as np
import matplotlib.pyplot as plt

data = 2 * np.random.rand(10000, 2) - 1
print('data: ', data)
x = data[:, 0] # 第一列数据
y = data[:, 1] # 第二列数据

idx = x ** 2 + y ** 2 < 1
hole = x ** 2 + y ** 2 < 0.25 
idx = np.logical_and(idx, ~hole) # 逻辑与,在大圆内不再小圆内

plt.plot(x[idx], y[idx], 'bo', markersize = 1)
plt.show()
67. Python基础-数学库(2)_第4张图片
image.png

你可能感兴趣的:(67. Python基础-数学库(2))