博客
关于我
(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/

你可能感兴趣的文章
RabbitMQ - 如保证消息的可靠性?(消息确认、消息持久化、失败重试机制)
查看>>
RabbitMQ - 基于 SpringAMQP 带你实现五种消息队列模型
查看>>
php数组函数分析--array_column
查看>>
php数组去重复数据的小例子
查看>>
php数组实现:哈希 +双向链表
查看>>
PHP数组排序函数array_multisort()函数详解(二)
查看>>
php数组的几个函数和超全局变量
查看>>
PHP文件上传详解
查看>>
PHP文件锁
查看>>
php文本框输入制定文本,php – 当用户没有向文本框输入任何内容时...
查看>>
PHP时间戳和日期相互转换操作总结
查看>>
php时间戳知识点,php 时间戳函数总结与示例
查看>>
php更新数据库失败,php – 无法更新MySQL数据库
查看>>
php机器人聊天对话框,基于AIML的PHP聊天机器人
查看>>
PHP查找数组中最大值与最小值
查看>>
php查最大值,在PHP数组中查找最大值
查看>>
php标签筛选,关于PHP CodeIgniter框架中通过<a>标签和url做多条件分类筛选
查看>>
php根据年月日计算年龄
查看>>
RabbitMQ - 单机部署(超详细)
查看>>
php检查注册,PHP检查注册的电子邮件地址是一个’school.edu’地址
查看>>