没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
内容概要:本文系统地阐述了 Python 数据分析核心库 Numpy 的多种进阶特性和实际应用技巧。文中涵盖的关键主题包括:利用 np.where 方法提取并操作符合指定条件的元素;导入导出 csv 文件和其他常见操作步骤的讲解;保存及加载 Numpy 数组的方式介绍,包括 .npy 和 .npz 格式。此外还深入探讨了数组合并、基于单或多列排序的技术、高效处理日期对象以及一组高级函数的应用。适合希望提高工作效率和加深对 Numpy 功能掌握程度的中级开发者学习。 适用人群:具有基本 Python 编程能力和初步了解 Numpy 语法的中级开发者或研究人员。 使用场景及目标:提升日常数据处理能力;解决复杂的科学计算任务以及对数据预处理、数据分析等领域常见的需求给出高效解决方案。 其他说明:本文通过丰富的实例演示了每一项特性,便于快速理解并将之应用于现实项目当中。
资源推荐
资源详情
资源评论
2020/2/17 清晰易懂的Numpy进阶教程
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247486490&idx=1&sn=9b9a1de0056c790f23834d4dff729e2e&chksm=fb39a91…
1/13
清晰易懂的Numpy进阶教程
推荐阅读:
清晰易懂的Numpy入门教程
Numpy是数据分析和科学计算的核心包,上文详细介绍了Numpy的入门教程,本文将详细介绍Numpy的
高级特性,这些特性对于数据分析和处理非常重要。
来源:Machine Learning Plus
翻译:石头
目录
1. 如何获取满足条设定件的索引
2. 如何将数据导入和导出csv文件
3. 如何保存和加载numpy对象
4. 如何按列或行拼接numpy数组
5. 如何按列对numpy数组进行排序
6. 如何用numpy处理日期
7.高阶numpy函数介绍
8. 小结
1. 如何获取满足条设定件的索引
上一文介绍根据数组是否满足条件,输出为True或False.
#
定
义
数
组
import
numpy
as
np
原创
石头 2019-04-12机器学习算法那些事
2020/2/17 清晰易懂的Numpy进阶教程
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247486490&idx=1&sn=9b9a1de0056c790f23834d4dff729e2e&chksm=fb39a91…
2/13
arr_rand = np.array([8, 8, 3, 7, 7, 0, 4, 2, 5, 2])
#
根
据
数
组
是
否
大
于
4
,
满
足
为
True
,
不
满
足
为
False
b = arr_rand > 4
b
#> array([ True, True, False, True, True, False, False, False, True,
False])
若我们想得到满足条件的索引,用np.where函数实现.
#
定
位
数
组
大
于
5
的
索
引
index_gt5 = np.where(arr_rand > 5)
print
("Positions where value > 5: ", index_gt5)
#> Positions where value > 5: (array([0, 1, 3, 4]),) #
索
引
由索引得到满足条件的值.
#
根
据
索
引得
到
满
足
条
件
的
数
组
值
arr_rand.take(index_gt5)
#> array([[8, 8, 7, 7]])
np.where也可以接受另两个可选择的参数x和y。当条件满足时,输出x,反之输出y.
#
如
果
值
大
于
5
,
输
出
字
符
串
'gt5'
,
反
之
输
出
'le5'
np.where(arr_rand > 5, 'gt5', 'le5')
#> array(['gt5', 'gt5', 'le5', 'gt5', 'gt5', 'le5', 'le5', 'le5', 'le5', 'le5'],
dtype='<U3')
np.argmax和np.argmin分别获取数组最大值和最小值的索引.
#
最
大
值
索
引
print
('Position of max value: ', np.argmax(arr_rand))
#
最
小
值
索
引
print
('Position of min value: ', np.argmin(arr_rand))
#> Position of max value: 0
#> Position of min value: 5
np.max和np.min分别获取数组的最大值和最小值.
#
最
大
值
print
('max value: ', np.max(arr_rand))
#
最
小
值
print
('min value: ', np.min(arr_rand))
#> max value: 8
#> min value: 0
2020/2/17 清晰易懂的Numpy进阶教程
https://mp.weixin.qq.com/s?__biz=MzU0MDQ1NjAzNg==&mid=2247486490&idx=1&sn=9b9a1de0056c790f23834d4dff729e2e&chksm=fb39a91…
3/13
2. 如何将数据导入和导出csv文件
导入数据的标准方法是使用np.genfromtxt函数,它可以从web URLs导入数据,处理缺失值,多种分隔
符,处理不规则的列数等功能。一个不太通用的版本是用np.loadtxt函数导入数据,它假设数据集无缺失
值.
作为示例,我们尝试从下面的URL读取.csv文件,由于numpy数组的所有元素都应该是同一种类型,因此
文本的最后一列默认为'nan'。通过设置参数'filling_values',你可以用其他值代替缺失值.
若设置参数dtype为'object'或'None',np.genfromtxt在未设置占位符的前提下能同时处理具有数字和文
本列的数据集.
最后,'np.savetxt'将数据保存为csv文件.
#
保
存
数
据
为
csv
文
件
np.savetxt("out.csv", data, delimiter=",")
#
关
闭
数
字
的
科
学
表
示
方
法
np.set_printoptions(suppress=True)
#
从
url
的
csv
文
件
导
入
数
据
path = 'https://raw.githubusercontent.com/selva86/datasets/master/Auto.csv'
# delimiter
:
分
隔
符
,
skip_header
:
从
多
少
行
开
始
读
数
据
,
以
0
开
始
,
filling_values
:
缺
失
值
表
示
,
dtype
:
data = np.genfromtxt(path, delimiter=',', skip_header=1, filling_values=-999, dtype='float')
data[:3]
#
显
示
前
3
行
数
据
#> array([[ 18. , 8. , 307. , 130. , 3504. , 12. , 70. ,
#> 1. , -999. ],
#> [ 15. , 8. , 350. , 165. , 3693. , 11.5, 70. ,
#> 1. , -999. ],
#> [ 18. , 8. , 318. , 150. , 3436. , 11. , 70. ,
#> 1. , -999. ]])
# data2 = np.genfromtxt(path, delimiter=',', skip_header=1, dtype='object')
data2 = np.genfromtxt(path, delimiter=',', skip_header=1, dtype=None)
data2[:3]
#
显
示
前
三
行
#> array([( 18., 8, 307., 130, 3504, 12. , 70, 1, b'"chevrolet chevelle malibu"'),
#> ( 15., 8, 350., 165, 3693, 11.5, 70, 1, b'"buick skylark 320"'),
#> ( 18., 8, 318., 150, 3436, 11. , 70, 1, b'"plymouth satellite"')],
#> dtype=[('f0', '<f8'), ('f1', '<i8'), ('f2', '<f8'), ('f3', '<i8'), ('f4', '<i8'), ('f5'
剩余12页未读,继续阅读
资源评论
风轻扬1314
- 粉丝: 110
- 资源: 531
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功