- 前言
- 一、行向量和列向量的表示
- 二、行向量和列向量的表示
- 三 画出正态分布的直方图和曲线图
- 总结
前言
Numpy+matplotlib的一些操作
一、行向量和列向量的表示import numpy as np a = np.array([[1,2,3],[4,5,6]]) #(2,3) b = np.array([1,2,3,4]) #(4,1) c = np.array([[[1,2,3],[4,5,6]],[[1,2,3],[4,5,6]]])#(2,2,3)
可以看出
a = [[1 2 3] [4 5 6]] b = [1 2 3 4] c = [[[1 2 3] [4 5 6]]] [[1 2 3] [4 5 6]]
'''
共轭
方法:a.conj()或np.conj(a)
转置
方法:a.T或a.transpose()
共轭转置
未找到直接方法,可用a.conj().T或a.T.conj()
'''
m = np.array([[1,2,3]])
m1 = np.array([[2,3,4]])
print(m) # [[1 2 3]]
c = m.transpose() # 或者使用print(c.T)都可以是行向量转变为列向量
print(c) # [[1]
# [2]
# [3]]
d = c*m1 # 3X1 1X3
print(d)
**
**
生成均匀分布的随机数
stock_change = np.random.uniform(low=-1, high=1, size=(5,10)) # 逻辑判断, 如果涨跌幅大于0.5就标记为True 否则为False c = stock_change > 0.5 print(c) print(stock_change, type(stock_change)) b = stock_change.copy() b[b>0.5] = 1.1 # 将矩阵中元素大于0.5的数变为1.1 #返回一个True和False的等大小矩阵 print(b) stock_change = stock_change.copy() stock_change[stock_change > 0.5] = 1.1 print(stock_change)
#以下两者均只返回一个布尔值 # 判断stock_change[0:2, 0:5]是否全是上涨的 a =np.all(stock_change[0:2, 0:5] > 0) print(a) # 判断前5只股票这段期间是否有上涨的 b = np.any(stock_change[:5, :] > 0) print(b)三 画出正态分布的直方图和曲线图
直方图展示数据的分布,柱状图比较数据的大小。
直方图X轴为定量数据,柱状图X轴为分类数据。
直方图柱子无间隔,柱状图柱子有间隔
直方图柱子宽度可不一,柱状图柱子宽度须一致
''' 直方图,形状类似柱状图却有着与柱状图完全不同的含义。 直方图牵涉统计学的概念,首先要对数据进行分组,然后统计每个分组内数据元的数量。 在坐标系中,横轴标出每个组的端点,纵轴表示频数, 每个矩形的高代表对应的频数,称这样的统计图为频数分布直方图。 ''' plt.hist(time, bins=group_num, density=True) ##第一个参数是数据,第二个参数是组数,第三个参数是density默认为False ##False显示的是频数,True显示的是频率
import matplotlib.pyplot as plt # plt.figure(figsize=(20,8),dpi = 80) # plt.hist(x,1000) # # plt.show() loc , scale = 0.75,0.1 x = np.random.normal(loc=0.75,scale=0.1,size =1000) count , bins ,density =plt.hist(x,20,density= True ) plt.plot(bins,1/(scale * np.sqrt(2 * np.pi)) *np.exp( - (bins - loc)**2 / (2 * scale**2) )) plt.show()
总结
1.矩阵的四则运算可以参考:
https://blog.csdn.net/qq_42032327/article/details/115443307
2.画图可以参考:
https://blog.csdn.net/m0_52987303/article/details/123609939



