博客
关于我
(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读写excel之xlrd&xlwt&xlutils组合
查看>>
Python 中的装饰器是什么?
查看>>
Python 中的装饰器是如何工作的,有哪些实际应用场景?
查看>>
python读excel
查看>>
Python 中读取 CSV 文件-ChatGPT4o作答
查看>>
Python 之 filecmp
查看>>
python请求html_使用Python请求获取HTML?
查看>>
Python 之匿名函数和偏函数
查看>>
python 之栈的实现
查看>>
python语音播放
查看>>
python语言:装饰器原理
查看>>
Python 交互式数据可视化详解
查看>>
python语言有哪些优点和缺点_Python有哪些优缺点,你了解吗?
查看>>
Python 从入门到精通:30天速成教程到底有多狠?你能坚持下来吗?
查看>>
Python 从数据库中存储和检索密码的最安全方法
查看>>
Python语言及其应用 - 知识点遍历
查看>>
Python 优化提速的 8 个小技巧
查看>>
Python 余弦相似度与皮尔逊相关系数 计算
查看>>
python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
查看>>
python 使用filetype校验文件
查看>>