numpy 数组运算

本文详细探讨了numpy库中的一维和二维数组运算,包括基本的算术操作以及数组到列表的转换。重点强调了一维数组运算时元素数量必须一致,以及二维数组运算时要求形状相同的原则。

数组运算

导包import numpy as np

一维数组运算

arr1=np.arange(1,6)
arr2=np.array([10,20,30,40,50])
print(arr1)
print(arr2)
print(arr1+arr2)
print('##############')
print(arr1*arr2)

输出结果
在这里插入图片描述
注意点:一维数组的元素个数是相同的
运算为下标相同的元素的算数运算

arr3=np.arange(0,10)
array方法中加range等价于arange
arr4=np.array(range(20,30))
print(arr1)
print(arr2)
print(arr1+arr2)
print('##############')
print(arr1*arr2)

在这里插入图片描述

二维数组运算

要求两个数组的形状(shape)相同,为相同位置元素算数运算

arr5=arr4.reshape((2,5))
print(arr5)
print('##############')
arr6=arr3.reshape((2,5))
print(arr6)
print(arr5*arr6)
可以和常数进行乘法运算
print(arr6*100.0)
可以和与之列相同元素个数的一维数组进行运算
print(arr5*np.arange(0,5))
测试一下能否使用2元素的一维数组进行相乘
try:
    print(arr5*np.arange(0,2))
except Exception as e:
    print(e)

在这里插入图片描述

数组转列表

arr7=np.arange(10)
print(arr7)
print(list(arr7))
arr8=arr7.tolist()
print(arr8)

在这里插入图片描述

### NumPy 数组运算教程 NumPy 是 Python 中用于科学计算的核心库,其主要功能围绕 N 维数组对象展开。通过 NumPy 的矢量化特性,可以实现高效的批量运算,无需显式编写循环结构。 #### 1. 大小相等的数组运算 当两个 NumPy 数组具有相同的形状时,可以直接对它们进行逐元素的操作。这种操作方式被称为矢量化 (vectorization),能够显著提升性能并简化代码逻辑[^1]。 ```python import numpy as np a = np.array([1, 2, 3]) b = np.array([4, 5, 6]) addition = a + b # 加法 subtraction = a - b # 减法 multiplication = a * b # 乘法 division = a / b # 除法 print(addition) # 输出: [5 7 9] print(subtraction) # 输出: [-3 -3 -3] print(multiplication) # 输出: [4 10 18] print(division) # 输出: [0.25 0.4 0.5 ] ``` #### 2. 数组与标量的运算 除了数组之间的运算外,还可以将一个标量应用于整个数组。在这种情况下,标量会广播到数组的每一个元素上。 ```python scalar_addition = a + 10 # 将标量加到每个元素 scalar_multiplication = a * 2 # 将标量乘以每个元素 print(scalar_addition) # 输出: [11 12 13] print(scalar_multiplication) # 输出: [2 4 6] ``` #### 3. 常见数学函数的应用 NumPy 提供了大量的内置数学函数,这些函数支持直接作用于数组上的每一种元素。常见的例子包括三角函数、指数函数和对数函数等[^2]。 ```python c = np.array([np.pi/2, 0, np.pi]) sin_values = np.sin(c) # 计算正弦值 exp_values = np.exp(a) # 计算自然指数 log_values = np.log(np.abs(b)) # 对绝对值取自然对数 print(sin_values) # 输出: [1. 0. 1.2246468e-16] print(exp_values) # 输出: [ 2.71828183 7.3890561 20.08553692] print(log_values) # 输出: [1.38629436 0. 1.79175947] ``` #### 4. 广播机制 即使数组的形状不完全相同,在某些条件下仍然可以通过 **广播** 来完成运算。这使得不同维度或大小的数组也可以相互配合工作[^3]。 ```python d = np.array([[1], [2]]) e = np.array([3, 4]) broadcast_result = d + e print(d.shape) # 输出: (2, 1) print(e.shape) # 输出: (2,) print(broadcast_result) # 输出: [[4 5] [5 6]] ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值