Python之数据分析(Numpy的数据可视化、ndarray属性)
程序员文章站
2022-09-14 13:25:05
文章目录一、ndarray属性二、数据可视化一、ndarray属性1、常用属性dtype:数组类型shape:数组维度T:转置视图ndim:维数(一维是1,二维是2,三维是3……)size:元素数itemsize:每个元素的字节数nbytes:数组总字节数(size * itemsieze)flat:扁平迭代器(若不想每行每列访问元素,可以扁平化成1行来访问),扁平化之后可以用下标来取值,用于批量修改值real:复数的实部数组imag:复数的虚部数组数组.tolist():将数组...
文章目录
一、ndarray属性
1、常用属性
- dtype:数组类型
- shape:数组维度
- T:转置视图
- ndim:维数(一维是1,二维是2,三维是3……)
- size:元素数
- itemsize:每个元素的字节数
- nbytes:数组总字节数(size * itemsieze)
- flat:扁平迭代器(若不想每行每列访问元素,可以扁平化成1行来访问),扁平化之后可以用下标来取值,用于批量修改值
- real:复数的实部数组
- imag:复数的虚部数组
- 数组.tolist():将数组变成列表对象
2、ndarray练习
import numpy as np
a = np.array([
[1+1j, 2+4j, 3+7j],
[4+2j, 5+5j, 6+8j],
[7+3j, 8+6j, 9+9j]
])
# print(a.dtype, a.dtype.str, a.dtype.char)
# print(a.shape)
# print(a.ndim)
# print(a.size, len(a))
# print(a.itemsize)
# print(a.nbytes)
# print(a.real, a.imag, sep='\n')
# for item in a.flat:
# print(item)
# print(a.flat[[1, 3, 5]])
# a.flat[[2, 4, 6]] = 0
# print(a)
x = np.array([10, 20, 30])
y = 40
def fun(a, b):
a.append(b)
return a
x = np.array(fun(x.tolist(), y))
# print(x)
x = np.append(x, 50)
print(x)
二、数据可视化
1、可视化工具
matplotlib:数学绘图库
常用导入:matplotlib.pyplot
习惯:
import numpy as np
import matplotlib.pyplot as mp
因此,以下代码中的np就是numpy,mp就是matplotlib.pyplot数据可视化
2、基本绘图方法
- 默认曲线:mp.plot(水平坐标数组,垂直坐标数组)
- 定制化曲线:mp.plot(…,linestyle=线型, linewidth=线宽, colot=颜色)
- mp.xlim(左边界, 右边界)
- mp.ylim(低边界, 顶边界)
- mp.xticks(刻度位置数组,刻度文本数组)
- mp.yticks(刻度位置数组,刻度文本数组)
3、设置坐标轴的位置(2步)
1)ax = mp.gca() # 必须先获取当前坐标轴,赋值给ax
2)
- ax = spines[‘left’].set_position((‘data’, 0)) # 将左边的坐标轴设置到数据坐标的0点
- ax = spines[‘right’].set_color(‘red’) # 设置坐标轴的颜色为红色,none为无色
4、设置图例(2步)
1)mp.plot(…, label=图例文本) # 设置label属性就是添加图例
2)mp.legend(loc=‘upper left’) # 必须进行图例的位置设置,upper left表示左上角,lower right表示右下角
5、参考效果
6、练习代码
import numpy as np
import matplotlib.pyplot as mp
# 默认绘图
# 取从-π到π的999个点,作为横坐标
x = np.linspace(-np.pi, np.pi, 1000)
# x是一个数组,cos方法会将数组中每个元素都求余弦函数
cos_y = np.cos(x)/2
sin_y = np.sin(x)
# 默认绘图,绘制曲线
# mp.plot(x, cos_y)
# mp.plot(x, sin_y)
# 将图像窗口显示出来
# mp.show()
# 自定制绘图
mp.xlim(x.min() * 1.1, x.max() * 1.1) # 左边界是数组的最小值,右边界是数组的最大值,则就没有白边了
mp.yticks([-1, -0.5, 0.5, 1], ['A','B','C','D']) # 设置y坐标刻度,文字是ABCD,刻度值是-1, -0.5, 0.5, 1
mp.ylim(sin_y.min() * 1.1, sin_y.max() * 1.1)
mp.xticks([-np.pi, -np.pi*1/2, 0, np.pi*3/4, np.pi],
[r'$-\pi$', r'$-\frac{\pi}{2}$', '0', r'$\frac{3\pi}{4}$', r'$\pi$'])
# r表示取消python自动转义,$ $包围起来的是格式化转义内容,
# pi表示π,frac{}{}前括号是分子,后括号是分母
# 对坐标轴的处理
ax = mp.gca()
ax.spines['left'].set_position(('data', 0)) # 获取左坐标轴,将左边的坐标轴设置到横坐标为0的位置处
ax.spines['bottom'].set_position(('data', 0)) # 获取右坐标轴
ax.spines['right'].set_color("none")
ax.spines['top'].set_color("none")
mp.plot(x, cos_y, linestyle='--', linewidth=6, color="chartreuse", label=r'$y=\frac{1}{2}cos(x)$')
mp.plot(x, sin_y, linestyle=':', linewidth=2.5, color="steelblue", label=r'$y=sin(x)$')
mp.legend(loc = "upper left") # 设置图例显示位置为左上角
# 窗口展示
mp.show()
本文地址:https://blog.csdn.net/Viewinfinitely/article/details/107192796
上一篇: python之进程学习(二)
下一篇: 女人过了30岁一定要多按按这几个穴位!
推荐阅读
-
python数据分析之Numpy
-
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
-
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
-
荐 Python之数据分析(Numpy数据可视化:等高线图、热力图、饼图)
-
python数据分析之Numpy
-
Python数据分析之获取双色球历史信息的方法示例
-
Python数据分析:手把手教你用Pandas生成可视化图表的教程
-
Python可视化查看数据集完整性: missingno库(用于数据分析前的数据检查)
-
Python数据分析matplotlib可视化之绘图
-
Python数据分析中Groupby用法之通过字典或Series进行分组的实例