博客
关于我
(100天2小时第十五天)numpy数组的基本运算
阅读量:779 次
发布时间:2019-03-24

本文共 1683 字,大约阅读时间需要 5 分钟。

Numpy是Python中最常用的数组处理库,提供了一系列强大的数组操作功能。以下是关于Numpy数组操作的基础知识和常用技巧全解析。

数组的算术运算会自动作用于每个元素,并返回一个新的数组。这种特性使得Numpy非常便于批量处理数据。能够灵活运用+号和*号进行操作,轻松实现数据变换。

需要注意的是,矩阵乘法不使用普通的乘法符号,而是需要使用dot函数来完成。例如,类似于以下代码:

a = np.array([[1, 1],             [0, 1]])b = np.array([[2, 0],             [3, 4]])print(a * b)  # 输出:[[2, 0], [0, 4]]print(a.dot(b))  # 输出:[[3, 4]]

通过dot函数可以实现更复杂的矩阵乘法,这也是Numpy在高性能计算中的核心优势。

+= 和 *= 操作符可以直接修改原有的数组,而不是新建一个,这提供了高效更新数据的可能性。例如:

a = np.ones((2, 3), dtype=int)print(a)  # 输出:[[1, 1, 1], [1, 1, 1]]b = np.random.random((2, 3))print(b)  # 输出:数组形状:(2,3),发现随机值a += b  # 修改a数组print(b)  # 现在b的所有元素都和a相加后的结果一致

需要注意的是,数组的类型会影响操作。例如,上述示例中,a是int类型,b是float类型。当执行a += b时,b会被自动转换为float类型,而a则会由于类型兼容性问题无法支持float运算。这提示我们在进行数组操作时,需要注意数据类型的兼容性。

在运算时,不同类型的数组会自动向精度更高的类型转换,以保证结果的准确性。例如:

a = np.ones(3, dtype=np.int32)b = np.linspace(0, np.pi, 3)c = a + bprint(c)

这里,a是int32,b是float64,运算后结果c会是float64类型。同时,Numpy支持复数运算,可以通过乘以1j实现。

Numpy的ndarray功能强大,支持一系列内置函数,用于实现高效的数据分析操作。例如:

a = np.arange(15).reshape(3, 5)print(a)  # 输出:           # [[7, 8, 9,10,11],           #  [12,13,14,15,16],           #  [17,18,19,20,21]]print(a.sum())  # 输出:78print(a.min())  # 输出:7print(a.max())  # 输出:21

通过ndarray,用户可以轻松实现矩阵的行、列操作,如通过axis参数设置运算方向。

默认情况下,Numpy操作会沿着数组的所有轴执行,但其实也可以灵活指定axis来限定运算方向。例如:

b = np.arange(12).reshape(3, 4)print(b)  # 输出:           # [[0, 1, 2, 3],           #  [4, 5, 6, 7],           #  [8, 9,10,11]]print(b.sum(axis=0))  # 对每一列求和,结果为 [6, 12, 18]print(b.min(axis=1))  # 对每一行求最小值,结果为 [0, 4, 8]print(b.cumsum(axis=1))  # 对每一行进行累加,结果:                           # [[0, 1, 2,3],                           #  [4, 5, 6,7],                           #  [8,9,10,11]]

这是Numpy在数组操作中提供的灵活性,非常适用于多维数据的分析需求。

转载地址:http://bsuuk.baihongyu.com/

你可能感兴趣的文章
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI分页获取Postgresql数据到Hbase中_实际操作---大数据之Nifi工作笔记0049
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
NIFI同步MySql数据源数据_到原始库hbase_同时对数据进行实时分析处理_同步到清洗库_实际操作06---大数据之Nifi工作笔记0046
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_处理器介绍_处理过程说明---大数据之Nifi工作笔记0019
查看>>
NIFI大数据进阶_FlowFile生成器_GenerateFlowFile处理器_ReplaceText处理器_实际操作---大数据之Nifi工作笔记0020
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_实际操作_02---大数据之Nifi工作笔记0032
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
查看>>
NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
查看>>
NIFI大数据进阶_NIFI监控功能实际操作_Summary查看系统和处理器运行情况_viewDataProvenance查看_---大数据之Nifi工作笔记0026
查看>>
NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
查看>>
NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
查看>>
NIFI大数据进阶_NIFI集群知识点_集群的断开_重连_退役_卸载_总结---大数据之Nifi工作笔记0018
查看>>
NIFI大数据进阶_使用NIFI表达式语言_来获取自定义属性中的数据_NIFI表达式使用体验---大数据之Nifi工作笔记0024
查看>>
NIFI大数据进阶_内嵌ZK模式集群1_搭建过程说明---大数据之Nifi工作笔记0015
查看>>