python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > NumPy数值计算

NumPy数值计算的项目实现

作者:一只困顿的鹅

本文主要介绍了NumPy数值计算的项目实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

NumPy 是 Python 科学计算数据分析机器学习 的基础库,核心作用是高效处理数组(矩阵)运算,比原生 Python 列表快 10~100倍,是所有数据科学工具的基石。

一、核心概念:Numpy数组(ndarray)

Numpy 最核心的对象是 ndarray (多维数组) , 和 Python 列表的区别:

1.所有元素类型必须相同

2.支持多维

3.运算速度极快(底层用 C语言实现)

二、基础操作

1.创建数组

我们可以用 Python 列表创建数组,当然也可以使用 Numpy 提供的各种便捷函数来创建

import numpy as np # 导入 NumPy,并约定俗成地使用 np 作为别名

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

# 创建全为0的数组
zeros_arr = np.zeros((2, 3)) # 创建一个2行3列的数组

# 创建全为1的数组
ones_arr = np.ones((3, 2))

# 创建指定范围的数组
range_arr = np.arange(0, 10, 2) # 从0到10(不含),步长为2 -> [0, 2, 4, 6, 8]

# 创建随机数数组
random_arr = np.random.rand(2, 2) # 生成[0, 1)之间的均匀分布随机数

2.数组属性

了解数组的属性可以更好的操作数组

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

print(arr.shape)  # 形状: (2, 3),表示2行3列
print(arr.ndim)   # 维度: 2
print(arr.size)   # 元素总数: 6
print(arr.dtype)  # 数据类型: int64 (或 int32)

3.数组运算

Numpy 可以进行强大的简洁化运算

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])

# 元素级别的运算
print(a + b)      # [5 7 9]
print(a * b)      # [ 4 10 18]
print(a ** 2)     # [1 4 9]

# 使用数学函数
print(np.sin(a))  # [ 0.84147098  0.90929743  0.14112001]

4.索引与切片

Numpy 同 Python 列表一样,也可进行索引与切片操作

arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

print(arr_2d[0, 1])      # 获取第0行第1列的元素 -> 2
print(arr_2d[:, 1])      # 获取第1列的所有元素 -> [2 5 8]
print(arr_2d[arr_2d > 5]) # 布尔索引,获取所有大于5的元素 -> [6 7 8 9]

5.广播机制

广播是 NumPy 的一个核心特性,它允许不同形状的数组之间进行算术运算。简单来说,NumPy 会自动将较小的数组“拉伸”以匹配较大数组的形状。

a = np.array([1, 2, 3])
b = np.array([10])

# 标量 b 会被“广播”到与数组 a 相同的形状,然后进行运算
print(a + b) # [11 12 13]

6.Numpy 其它常用的函数

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

print(np.sum(data))    # 求和: 15
print(np.mean(data))   # 求平均值: 3.0
print(np.max(data))    # 求最大值: 5
print(np.std(data))    # 求标准差: 1.414...

到此这篇关于NumPy数值计算的项目实现的文章就介绍到这了,更多相关NumPy数值计算内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文