Python数据分析篇--NumPy--入门

简介: Python数据分析篇--NumPy--入门

NumPy相关知识

1. NumPy,全称是 Numerical Python,它是目前 Python 数值计算中最重要的基础模块。

2. NumPy 是针对多维数组的一个科学计算模块,这个模块封装了很多数组类型的常用操作。

3. NumPy 中最重要的对象是多维数组。

创建多维数组

1. 将一个列表作为参数传入 numpy 中的 array() 方法即可创建一个多维数组。


2. 我们也可以使用 numpy 中的 ones() 方法或者 zeros() 方法。


3. np.ones() 和 np.zeros() 的参数用于指定生成的多维数组里有多少个元素。


4. 默认生成的是浮点数,numpy 会省略小数点后的 0,因此 1.0 和 0.0 变成了 1. 和 0.。


5. 如果我们想要生成整数的话,可以传入 dtype='类型' 来指定类型。


5. 一般我们使用 import numpy as np ,即用 np 来简写 numpy。

import numpy as np
list=np.array([1,2,3])
print(list)
print(type(list))
#输出结果
#[1 2 3]
#<class 'numpy.ndarray'>
 
one=np.ones(5)
print(one)
print(type(one))
#[1. 1. 1. 1. 1.]
#<class 'numpy.ndarray'>
 
zero=np.zeros(3)
print(zero)
print(type(zero))
#[0. 0. 0.]
#<class 'numpy.ndarray'>
 
one=np.ones(5,dtype='int')
print(one)
print(type(one))
#输出结果 [1 1 1 1 1]

1. 列表间只有加法操作,作用是将两个列表的元素合并在一起。

2. 而多维数组间可以进行加减乘除的四则运算。

3. 运算规则也很简单:将两个数组中对应位置的元素一一进行运算。

import numpy as np
 
data = np.array([1, 2])
ones = np.ones(2)
print(data + ones)
#最终输出 [2. 3.]
 
data = np.array([1, 2])
print(data + 1)
# 输出:[2 3]

多维数组的索引

1. 多维数组的索引与字符串、列表的索引规则相同。

1. data = np.array([1, 2, 3])
2. print(data[0])
3. #输出 1

多维数组的分片

1. 多维数组的分片与字符串、列表的分片规则相同。


2. data[m : n] ,分片是左闭右开区间,即包含 m 不包含 n。


3. 冒号前后的值是可以省略的:省略后冒号前默认为 0,冒号后默认为列表的长度。


4. 对列表分片后的数据进行更改不会影响原数据,但对多维数组分片后的数据进行更改会影响到原数据。


5. 分片支持传入第三个参数——步长,即分片时每隔几个数据取一次值。步长的默认值为 1,当步长为负数时,会将顺序反转。

data = np.array([1, 2, 3])
print(data[0:2])  # 获取索引为 0 和 1 的元素
# 输出:[1 2]
 
data = np.array([1, 2, 3])
# 获取前 2 个元素
print(data[:2])
# 输出:[1 2]
 
# 获取后 2 个元素
print(data[-2:])
# 输出:[2 3]
 
# 获取所有元素
print(data[:])
# 输出:[1 2 3]
 
lst_data = [1, 2, 3]
lst_data2 = lst_data[:]
lst_data2[0] = 6
print(lst_data)
# 输出:[1, 2, 3]
 
arr_data = np.array([1, 2, 3])
arr_data2 = arr_data[:]
arr_data2[0] = 6
print(arr_data)
# 输出:[6 2 3]
 
data = np.array([1, 2, 3, 4, 5, 6])
print(data[::2])  # 省略前两个参数
# 输出:[1 3 5]
 
data = np.array([1, 2, 3, 4, 5, 6])
print(data[::-1])  # 省略前两个参数
# 输出:[6 5 4 3 2 1]

简单的数据分析

集中趋势

1. 集中趋势所反映的是一组数据所具有的共同趋势,它代表了一组数据的总体水平。

2. 其常用指标有平均数、中位数和众数。


离中趋势

1. 离中趋势是指一组数据中各数据值以不同程度的距离偏离其中心(平均数)的趋势。


2. 其常用指标有极差、方差和标准差。


3. 极差是一组数据的最大值减去最小值得到的,反应了数据变动的最大范围。


4. 方差和标准差都能反映数据的离散程度,也就是数据的波动程度。方差和标准差的值越小,说明数据越稳定。  


数据分析操作方法

1. 在 numpy 上调用对应函数并传入数据如:np.std(data)。

import numpy as np
 
player1 = np.array([4, 16, 5, 8, 11, 40, 4, 12, 23, 13])
player2 = np.array([9, 8, 12, 11, 9, 10, 13, 10, 11, 13])
player3 = np.array([4, 6, 8, 5, 6, 7, 6, 5, 8, 6])
print("1号玩家平均数",np.median(player1))
print("2号玩家平均数",np.median(player2))
print("3号玩家平均数",np.median(player3))
print("1号玩家方差",np.std(player1))
print("2号玩家方差",np.std(player1))
print("3号玩家方差",np.std(player1))
 
#输出结果
#1号玩家平均数 11.5
#2号玩家平均数 10.5
#3号玩家平均数 6.0
#1号玩家方差 10.44222198576529
#2号玩家方差 10.44222198576529
#3号玩家方差 10.44222198576529

致谢

感谢您花时间阅读这篇文章!如果您对本文有任何疑问、建议或是想要分享您的看法,请不要犹豫,在评论区留下您的宝贵意见。每一次互动都是我前进的动力,您的支持是我最大的鼓励。期待与您的交流,让我们共同成长,探索技术世界的无限可能!

相关文章
|
6天前
|
编解码 Java 程序员
写代码还有专业的编程显示器?
写代码已经十个年头了, 一直都是习惯直接用一台Mac电脑写代码 偶尔接一个显示器, 但是可能因为公司配的显示器不怎么样, 还要接转接头 搞得桌面杂乱无章,分辨率也低,感觉屏幕还是Mac自带的看着舒服
|
8天前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1563 10
|
1月前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
11天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
738 27
|
8天前
|
存储 SQL 关系型数据库
彻底搞懂InnoDB的MVCC多版本并发控制
本文详细介绍了InnoDB存储引擎中的两种并发控制方法:MVCC(多版本并发控制)和LBCC(基于锁的并发控制)。MVCC通过记录版本信息和使用快照读取机制,实现了高并发下的读写操作,而LBCC则通过加锁机制控制并发访问。文章深入探讨了MVCC的工作原理,包括插入、删除、修改流程及查询过程中的快照读取机制。通过多个案例演示了不同隔离级别下MVCC的具体表现,并解释了事务ID的分配和管理方式。最后,对比了四种隔离级别的性能特点,帮助读者理解如何根据具体需求选择合适的隔离级别以优化数据库性能。
225 3
|
15天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
786 5
|
2天前
|
Python
【10月更文挑战第10天】「Mac上学Python 19」小学奥数篇5 - 圆和矩形的面积计算
本篇将通过 Python 和 Cangjie 双语解决简单的几何问题:计算圆的面积和矩形的面积。通过这道题,学生将掌握如何使用公式解决几何问题,并学会用编程实现数学公式。
108 60
|
1天前
|
人工智能
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
云端问道12期-构建基于Elasticsearch的企业级AI搜索应用陪跑班获奖名单公布啦!
115 1
|
3天前
|
Java 开发者
【编程进阶知识】《Java 文件复制魔法:FileReader/FileWriter 的奇妙之旅》
本文深入探讨了如何使用 Java 中的 FileReader 和 FileWriter 进行文件复制操作,包括按字符和字符数组复制。通过详细讲解、代码示例和流程图,帮助读者掌握这一重要技能,提升 Java 编程能力。适合初学者和进阶开发者阅读。
104 61
|
14天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】