【数据分析之Numpy基础004】数学运算大揭秘:轻松玩转ndarray的强大实力

本文详细介绍了在Numpy库中使用ndarray进行数学运算,包括四则运算、三角函数应用、四舍五入、聚合函数如求和、平均值等,并给出了相关实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        ndarray的数学运算是一项非常重要的操作,包括不同对象之间的四则运算,三角函数变换、求和、求平均等操作

1、四则运算

        如果参与运算的两个对象都是ndarray,并且形状相同,那么就可以进行对位之间的四则(+ - * / )运算。

        在Numpy中,四则运算分别为:add(), subtract(), multiply()和divide()

import numpy as np

arr1 = np.arange(6, dtype=float).reshape(2, 3)

arr2 = np.array([10, 10, 10])

print('arr1+arr2=', np.add(arr1, arr2))

print('arr1-arr2=', arr1-arr2)

print('arr1*arr2=', np.multiply(arr1, arr2))

print('arr1/arr2=', np.divide(arr1, arr2))

# 输出结果到指定对象

arr3 = np.arange(4)

arr4 = np.empty(4)

np.multiply(arr3, 10, out=arr4)

print('arr4:', arr4)

2、数学函数

        Numpy提供了标准的三角函数:sin(), cos(), tan()。

        注意:numpy没有提供cot()函数的API,如果需要计算cot()值,可以使用sin()与cos()函数进行计算。

arr = np.array([0, 30, 45, 60, 90])

print('不同角度对应的正弦值为:\n', np.sin(arr*np.pi/180))

print('不同角度对应的余弦值为:\n', np.cos(arr*np.pi/180))

print('不同角度对应的正切值为:\n', np.tan(arr*np.pi/180))

print('不同角度对应的余切值为:\n', np.divide(np.cos(arr*np.pi/180), np.sin(arr*np.pi/180)))

3、四舍五入函数

        Numpy中的四舍五入函数与python中平常使用的四舍五入函数一样,只是导入了Numpy的包而已

        (1)四舍五入

numpy.around(a, decimals)

        a:数组

        decimals:舍入的小数位数,默认为0,。如果为负,整数将四舍五入到小数点左侧的位置

        (2)向下取整

numpy.floor()

        (3)向上取整

numpy.ceil()

实例

arr = np.array([2.06, 0.256, 23, 15.636])

print('arr:', arr)

print('不保留小数:\n', np.around(arr))

print('保留1位小数:\n', np.around(arr, decimals=1))

print('保留-1位小数:\n', np.around(arr, decimals=-1))

print('向下取整:\n', np.floor(arr))

print('向上取整:\n', np.ceil(arr))

4、聚合函数

        Numpy还提供了许多统计函数,包括查找最大/小元素、求和、平均值、方差等等

实例:

arr = np.arange(12).reshape(3, 4)

print('arr:\n', arr)

print('arr数组所有元素求和为:\n', np.sum(arr))

print('arr数组所有元素相乘为:\n', np.prod(arr))

print('arr数组的平均值为:\n', np.mean(arr))

print('arr数组每一行的平均值为:\n', np.mean(arr, axis=1))

print('arr数组每一列的平均值为:\n', np.mean(arr, axis=0))

print('arr数组的标准差为:\n', np.std(arr))

print('arr数组的方差为:\n', np.var(arr))

print('arr数组的中位数为:\n', np.median(arr))

print('arr数组每一行的中位数为:\n', np.median(arr, axis=1))

print('arr数组每一列的中位数为:\n', np.median(arr, axis=0))

print('arr数组的平方为:\n', np.power(arr, 2))

print('arr数组的开方为:\n', np.sqrt(arr))

print('arr数组的最小值为:\n', np.min(arr))

print('arr数组的最大值为:\n', np.max(arr))

print('arr数组的最小值下标为:\n', np.argmin(arr))

print('arr数组的最大值下标为:\n', np.argmax(arr))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值