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

你可能感兴趣的文章
python车牌精确定位
查看>>
python try except finally_Python3基础 try-except-finally 的简单示例
查看>>
Python Turtle图形窗口不显示任何内容
查看>>
Python tweepy写入到sqlite3 db
查看>>
Python TypeError:格式字符串的参数不足
查看>>
Python UI自动化测试Page Objects企业级实战
查看>>
Python趣味编程:用代码创造无限可能
查看>>
Python UI自动化测试三方库扩展详解
查看>>
Python UI自动化测试与Web UI自动化测试框架详解
查看>>
python谷歌翻译,2021年9月10日亲测可用,一次可以翻译十万,强烈star
查看>>
Python UI自动化测试数据驱动实战
查看>>
Python UI自动化测试集成UnitTest
查看>>
Python UI自动化测试集成UnitTest
查看>>
python unicode-escape
查看>>
Python unittest mock:是否可以在测试时模拟方法默认参数的值?
查看>>
Python unittest单元测试框架 TestSuite测试套件
查看>>
PYTHON调离线语音合成并实时播放
查看>>
python unittest高级特性!
查看>>
Python unittest:如何将标准输出消息临时重定向到缓冲区并测试其内容?
查看>>
Python urllib/Requests下载文件失败,但浏览器下载失败
查看>>