Python数据分析教程:如何用Python实现老板一目了然的数据效果
[id_77447[id_1890912894]278]

数据效果在管理系统中通常以数据表格和图形的形式呈现,并且还会带有一些动画。如果管理系统没有图表,在这个注重外观的时代,就会显得缺乏吸引力,也会让人不想靠近。
我不多说别的了,给你截两张后台管理系统的界面,你看了就会明白我在说什么。
数据图形化
数据表格化
我必须说一点。这个是后台 Web 管理系统的。后面我会分享它。老铁,请不要着急。我分享这两张图,是想告诉你,里面的数据源是以数组的形式填充的。
认真学过《第 6 天 | 12 天搞定 Python,数据结构(上)》和《第 6 天 | 12 天搞定 Python,数据结构(下)》的朋友应该知晓,在 Python 的数据结构当中,并不存在数组这样一个容器。然而,数组在开发过程中是非常常用的,正因如此,便有了 Numpy。
2.1 安装Numpy
NumPy 是 Python 语言的一个扩展程序库。它支持大量的维度数组与矩阵运算。同时,它也针对数组运算提供了大量的数学函数库。安装依然可以通过 pip 或 pip3 命令来进行。为了能够加快下载速度,我们使用清华的镜像就能够满足需求了。
用pip/pip3 install numpy -i
稍等片刻,就安装好了,咱离图表实现又近一步了。
2.2 创建数组
数组分为一维和多维。其中,常用的有一维和二维。需要注意的是,数组与其他数据结构不同,它的内容必须是同一种数据类型,例如全部是整型,全部是字符串,全部是元组。
import numpy as np
# 创建一维整型数组
a = np.array([1, 2, 3])
print(a)
# 二维数组
b 是一个数组,它包含了两个子数组。第一个子数组包含了“老陈”和“编程”这两个元素。第二个子数组包含了“Python”和“Java”这两个元素。
print(b)
# 矩阵
c 是一个数组,其元素为[[1, 2, 3], [4, 5, 6], [8, 9, 10]]
print(c)
# 行转列
print(c.T)
# 数组以0填充
创建了一个形状为(3,),数据类型为 np.int 的全零数组 x 。 这个数组由 3 个整数元素组成,每个元素的值都为 0 。 它是通过 np.zeros 函数创建的,该函数用于生成指定形状和数据类型的全零数组。
print(x)
# 数组以1填充y
y = np.ones(3, dtype=int)
print(y)
# 生成数组系列,这个用法同之前的range类似
z = np.arange(1, 5)
print(z)
# 列表转成数组
x = [7, 8, 9]
a = np.asarray(x)
print(a)
# 元组转成数组
x = (5, 6, 7)
a = np.asarray(x)
print(a)
输出结果
[1 2 3]
老陈专注于编程。
Python 和 Java 。
[[ 1 2 3]
[ 4 5 6]
[ 8 9 10]]
[[ 1 4 8]
[ 2 5 9]
[ 3 6 10]]
[0 0 0]
[1 1 1]
[1 2 3 4]
[7 8 9]
[5 6 7]
2.3 数组访问
数组能够通过下标来进行访问,数组也可以通过切片的方式进行访问,数组还能通过索引的方式进行访问,这些方式与之前学习 Python 基础知识时的情况并没有很大的差别。对元素进行循环迭代,其方式也是类似的。
import numpy as np
"""
数组访问
"""
a = np.arange(1, 11)
# 用索引进行访问
s = slice(1, 3)
print(a[s])
# 切片,Python基础语法来的
b = a[2:7:3]
print(b)
# 用下标访问
i = a[2]
print(i)
# 这个新的语法,重点注意一下
np 生成了一个数组 a,这个数组包含了三个子数组,第一个子数组是 [1, 2, 3],第二个子数组是 [3, 4, 5],第三个子数组是 [6, 7, 8] 。
# 第2列元素
print(a[..., 1])
# 第2行元素
print(a[1, ...])
# 第2列及剩下的所有元素
print(a[..., 1:])
以坐标轴的方式来获取:在(0,0)位置处的元素,在(1,1)位置处的元素,以及在(2,0)位置处的元素。
y = a[[0, 1, 2], [0, 1, 0]]
print(y)
# 过滤值
print(a[a > 6])
# 循环输出
for x in np.nditer(a):
print(x, end=", ")
输出结果
[2 3]
[3 6]
3
[2 4 7]
[3 4 5]
[[2 3]
[4 5]
[7 8]]
[1 4 6]
[7 8]
1, 2, 3, 3, 4, 5, 6, 7, 8,
2.4 数组操作
数组维度能够根据需求进行调整以及切割,能够去除重复的元素,也能够删除不需要的内容。在达成功能的过程中,我不太倾向于说过多的话,仅仅希望能够安静地敲击代码。建议你也多多进行代码敲击。
import numpy as np
打印("---------维度调整---------")
a = np.arange(10)
# 输出维度数
print(a.ndim)
np 生成了一个二维数组,其元素分别为[[4, 2, 3], [6, 5, 8]],这个数组被赋值给变量 a 。
# 行数和列数
print(a.shape)
# 调整行数和列数
a.shape = (3, 2)
print(a)
# 还可以通过reshape调整
b = a.reshape(3, 2)
print(b)
打印("-----------数组分割------------")
print("分割成3个相同的数组")
b = np.split(a, 3)
print(b)
print("按指定位置进行分割")
b = np.split(a, [3, 3])
print(b)
打印("-----------添加元素------------")
np 将 [9, 10, 11] 添加到 a 中,并且指定 axis 为 None
print(a)
# 插入元素
使用 np 库的 insert 函数,将值 11 插入到数组 a 的第一列(axis=1 表示列),并打印结果
打印("-----------删除元素------------")
# 去掉重复值
u = np.unique(a)
print(u)
# 删除元素
print(np.delete(a, 5))
输出结果
---------维度调整---------
1
(2, 3)
[[4 2]
[3 6]
[5 8]]
[[4 2]
[3 6]
[5 8]]
-----------数组分割------------
分割成3个相同的数组
这是一个包含三个数组的列表,第一个数组是[[4, 2]],第二个数组是[[3, 6]],第三个数组是[[5, 8]]。
按指定位置进行分割
[array([[4, 2],
[3, 6],
[5, 8]],有一个形状为(0, 2)且数据类型为 int64 的空数组,还有另一个形状为(0, 2)且数据类型为 int64 的空数组。
-----------添加元素------------
[[4 2]
[3 6]
[5 8]]
[[ 4 11 2]
[ 3 11 6]
[ 5 11 8]]
-----------删除元素------------
[2 3 4 5 6 8]
[4 2 3 6 5]
2.5 数组函数
在 NumPy 中,为了便于数组的操作,提供了与 Python 内置函数相同的功能,包括去掉空格、进行大小写转换以及获取最大值、最小值等。
import numpy as np
a = ["老陈"]
b = ["说编程"]
c = np.char.add(a, b)
print(c)
# 开头转成大写字母
使用 np.char.capitalize 函数对 "good" 进行首字母大写操作并打印出来。
# 每个单词开头转成大写字母
打印(np.char.title("i like python."))
# 四舍五入
a 是一个数组,这个数组包含了 3.1、6.66、153、0.782、28.356 这些数值。
使用 np.around 函数对 a 进行四舍五入操作,保留一位小数并打印结果。
# 最小值
print(np.amin(a))
# 最大值
print(np.amax(a))
# 最大值-最小值
print(np.ptp(a))
# 排序
x = np.array([6, 4, 5])
print(np.sort(x))
np 生成了一个二维数组 a,这个数组包含了两个子数组,第一个子数组是 [3, 8],第二个子数组是 [6, 2]
print(np.sort(a))
# 过滤条件,保留剩下的,成为一维数组
y = np.where(a > 5)
print(a[y])
输出结果
['老陈说编程']
Good
I Like Python.
[3.1,6.7,153,0.8,28.4]分别为一些数值,其中 3.1 是一个数值,6.7 是一个数值,153 是一个数值,0.8 是一个数值,28.4 是一个数值。
0.782
153.0
152.218
[4 5 6]
[[3 8]
[2 6]]
[8 6]
老陈讲完了有关 Numpy 常用的内容。如果你觉得有所帮助,希望老铁转发点赞,让更多人看到这篇文章。你的转发和点赞,是对老陈继续创作和分享的最大鼓励。
一个有着 10 年技术总监经历的人,要分享多年积累的编程经验。对于想学编程的朋友来说,可以关注今日头条上的“老陈说编程”。这里会分享关于 Python、前端(小程序)、App 以及嵌入式方面的实用内容。关注他,是不会出错的。