NumPy 库介绍:核心 API 详解

NumPy 是 Python 中用于科学计算的基础库,提供了高性能的多维数组对象和用于操作这些数组的工具。以下是 NumPy 中一些最常用的 API 介绍:

1. array

创建 NumPy 数组的基本方法。

import numpy as np

# 从列表创建数组
arr_1 = np.array([1, 2, 3, 4, 5])
print(arr_1)  
# [1 2 3 4 5]

# 创建二维数组
arr_2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2)

# [[1 2 3]
#  [4 5 6]]

2. zeros

创建指定形状的全零数组。

# 创建一维全零数组
zeros_1 = np.zeros(5)
print(zeros_1)  
# 输出: [0. 0. 0. 0. 0.]

# 创建二维全零数组 (3行4列)
zeros_2 = np.zeros((3, 4))
print(zeros_2)
# [[0. 0. 0. 0.]
#  [0. 0. 0. 0.]
#  [0. 0. 0. 0.]]

3. arange

类似于 Python 的 range() 函数,但返回 NumPy 数组。

# 从0到9的数组
arr_1 = np.arange(10)
print(arr_1)  
# 输出: [0 1 2 3 4 5 6 7 8 9]

# 从5到14的数组
arr_2 = np.arange(5, 15)
print(arr_2)  
# 输出: [ 5  6  7  8  9 10 11 12 13 14]

# 从0到20,步长为3
arr_3 = np.arange(0, 20, 3)
print(arr_3)  
# 输出: [ 0  3  6  9 12 15 18]

4. random.randint

生成随机整数数组。

# 生成0到10之间的随机整数 (不包括10)
random_int = np.random.randint(10)
print(random_int)  
# 7

# 生成5个0到10之间的随机整数
random_int_list = np.random.randint(0, 10, size=5)
print(random_int_list)  
# [3 7 2 8 1]

# 生成3x3的随机整数矩阵 (10到20之间)
random_matrix = np.random.randint(10, 20, size=(3, 3))
print(random_matrix)
# [[14 11 16]
#  [18 12 19]
#  [13 10 17]]

5. max

找出数组中的最大值。

arr = np.array([1, 5, 3, 9, 2])

# 整个数组的最大值
max_val = np.max(arr)
print(max_val)  
# 9

# 二维数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 每列的最大值
max_col = np.max(arr, axis=0)
print(max_col)   
# [7 8 9]

# 每行的最大值
max_row = np.max(arr, axis=1)
print(max_row)  
# [3 6 9]

6. min

找出数组中的最小值。

arr_1 = np.array([5, 2, 8, 1, 7])

# 整个数组的最小值
min_val = np.min(arr_1)
print(min_val)  
# 1

# 二维数组
arr_2 = np.array([[4, 5, 6], [1, 2, 3], [7, 8, 9]])

# 每列的最小值
min_col = np.min(arr_2, axis=0)
print(min_col)  
# [1 2 3]

# 每行的最小值
min_row = np.min(arr_2, axis=1)
print(min_row)  
# [4 1 7]

7. mean

计算数组的平均值。

arr_1= np.array([1, 2, 3, 4, 5])

# 整个数组的平均值
mean_val = np.mean(arr_1)
print(mean_val)  
# 3.0

# 二维数组
arr_2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 每列的平均值
mean_col = np.mean(arr_2, axis=0)
print(mean_col)  
# [4. 5. 6.]

# 每行的平均值
mean_row = np.mean(arr_2, axis=1)
print(mean_row)  
# [2. 5. 8.]

8. sum

计算数组元素的和。

arr_1 = np.array([1, 2, 3, 4, 5])

# 整个数组的和
sum_val = np.sum(arr_1)
print(sum_val)  
# 15

# 二维数组
arr_2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# 每列的和
sum_col = np.sum(arr_2, axis=0)
print(sum_col)  
# [12 15 18]

# 每行的和
sum_row = np.sum(arr_2, axis=1)
print(sum_row)  
# [ 6 15 24]

# 所有元素的和
total_sum = np.sum(arr_2)
print(total_sum)  
# 45

9. 代码案例

import numpy as np

print("创建数组")
my_list = [1,2,3,4,5]
np_array = np.array(my_list)
print(f"从列表创建的数组{np_array}")
# 从列表创建的数组[1 2 3 4 5]

zero_matrix = np.zeros((2,3))
print("2*3的全零矩阵:\n",zero_matrix)
"""
 2*3的全零矩阵:
 [[0. 0. 0.]
 [0. 0. 0.]]
"""

seq_array = np.arange(0,10,2)
print(f"序列数组:{seq_array}")
# 序列数组:[0 2 4 6 8]

data = np.arange(10,20)
print(f"原始数据:{data}")
# 原始数据:[10 11 12 13 14 15 16 17 18 19]

print(f"第一个元素:{data[0]}")
# 第一个元素:10

print(f"最后3个元素:{data[-3:]}")
# 最后3个元素:[17 18 19]

print(f"索引1到4的切片:{data[1:4]}")
# 索引1到4的切片:[11 12 13]

print("向量化运算与广播机制")
a = np.array([10,20,30,40])
b = np.array([1,2,3,4])

print(f"a+b={a+b}")
# a+b=[11 22 33 44]

print(f"a*b={a*b}")
# a*b=[ 10  40  90 160]

print(f"a+100={a+100}")
# a+100=[110 120 130 140]

print(f"a*2={a*2}")
# a*2=[20 40 60 80]

task_matrix = np.random.randint(1,101,size=(5,5))
print("随机矩阵:\n",task_matrix)

"""
随机矩阵:
 [[ 1 87 25 41 96]
 [13 65 64 32 72]
 [42 64 34 37 83]
 [68 83 79 21 85]
 [16 95 85 16 29]]
"""

max_val = task_matrix.max()
min_val = task_matrix.min()
row_mean = task_matrix.mean(axis = 1)
col_sum = task_matrix.sum(axis = 0)

print(f"最大值:{max_val}") # 96
print(f"最小值:{min_val}") # 1
print(f"每行平均值:{row_mean}") # [50. 49.2  52. 67.2 48.2]
print(f"每列总和:{col_sum}") # [140 394 287 147 365]

这些 API 是 NumPy 中最基础也是最常用的功能,掌握了它们就能处理大多数数值计算任务。NumPy 的强大之处在于这些操作都是向量化的,能够高效地处理大规模数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艾光远

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值