深入探索NumPy手册

一、NumPy库简介

NumPy(Numerical Python)是一个用于科学计算的Python库。它提供了一个用于处理大型多维数组和矩阵的高效工具。NumPy库在数据科学领域是一个重要的库。

下面是一个简单的例子,演示了如何使用NumPy库创建一个一维数组,并对其进行操作:

import numpy as np

arr = np.array([1, 2, 3, 4])
print(arr) # 输出 [1 2 3 4]

# 数组的形状
print(arr.shape) # 输出 (4,)

# 数组的元素个数
print(arr.size) # 输出 4

# 数组元素的数据类型
print(arr.dtype) # 输出 int64

二、创建数组

使用NumPy库可以很方便地创建数组。可以使用numpy.array函数创建数组,也可以从列表或元组中创建数组:

import numpy as np

# 从列表中创建数组
arr1 = np.array([1, 2, 3, 4])
print(arr1) # 输出 [1 2 3 4]

# 从元组中创建数组
arr2 = np.array((1, 2, 3, 4))
print(arr2) # 输出 [1 2 3 4]

使用NumPy库也可以创建特定的数组,例如,可以使用numpy.zeros函数创建全零数组,numpy.ones函数创建全一数组,numpy.random.rand函数创建随机数组:

import numpy as np

# 创建全零数组
zeros_arr = np.zeros(3)
print(zeros_arr) # 输出 [0. 0. 0.]

# 创建全一数组
ones_arr = np.ones(3)
print(ones_arr) # 输出 [1. 1. 1.]

# 创建随机数组
rand_arr = np.random.rand(3)
print(rand_arr) # 输出 [0.85007557 0.74959504 0.178823]

# 创建指定形状的数组
arr = np.empty((2, 3))
print(arr) # 输出 [[1.24441872e-311, 9.58487353e-322, 0.00000000e+000],
           #     [0.00000000e+000, 6.95348796e-309, 7.49303579e-067]]

三、数组索引和切片

与Python中列表和元组的索引和切片类似,使用NumPy库也可以对数组进行相应的操作。可以使用整数索引、切片和布尔索引来选择数组的子集。

import numpy as np

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

# 整数索引
print(arr[0]) # 输出 1
print(arr[2]) # 输出 3

# 切片
print(arr[3:6]) # 输出 [4 5 6]
print(arr[:5]) # 输出 [1 2 3 4 5]
print(arr[5:]) # 输出 [ 6  7  8  9 10]

# 布尔索引
arr_bool = arr > 5
print(arr_bool) # 输出 [False False False False False  True  True  True  True  True]
print(arr[arr_bool]) # 输出 [ 6  7  8  9 10]

四、数组操作

NumPy库提供了许多有用的函数来操作数组,例如可以使用numpy.reshape函数改变数组的形状,numpy.concatenate函数将多个数组合并成一个数组,numpy.copy函数复制数组:

import numpy as np

# 改变数组形状
arr1 = np.array([1, 2, 3, 4, 5, 6])
reshape_arr = arr1.reshape((2, 3))
print(reshape_arr) # 输出 [[1 2 3]
                   #     [4 5 6]]

# 合并数组
arr2 = np.array([7, 8, 9])
concatenate_arr = np.concatenate((arr1, arr2))
print(concatenate_arr) # 输出 [1 2 3 4 5 6 7 8 9]

# 复制数组
copy_arr = arr1.copy()
copy_arr[0] = 0
print(copy_arr) # 输出 [0 2 3 4 5 6]
print(arr1) # 输出 [1 2 3 4 5 6]

五、数学函数

NumPy库提供了许多常用的数学函数,如三角函数、指数函数、对数函数等,以及统计函数,如平均值、方差、标准差等。

import numpy as np

x = np.array([0, np.pi/2, np.pi])

# 三角函数
print(np.sin(x)) # 输出 [0.         1.         0.        ]
print(np.cos(x)) # 输出 [ 1.000000e+00  6.123234e-17 -1.000000e+00]

# 指数函数和对数函数
x = np.array([1, 2, 3])
print(np.exp(x)) # 输出 [ 2.71828183  7.3890561  20.08553692]
print(np.log(x)) # 输出 [0.       0.693147 1.098612]

# 统计函数
arr = np.array([1, 2, 3, 4, 5])
print(np.mean(arr)) # 输出 3.0
print(np.var(arr)) # 输出 2.0
print(np.std(arr)) # 输出 1.41421356  

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/206218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-07 17:50
下一篇 2024-12-07 17:50

相关推荐

  • Python矩阵转置函数Numpy

    本文将介绍如何使用Python中的Numpy库实现矩阵转置。 一、Numpy库简介 在介绍矩阵转置之前,我们需要了解一下Numpy库。Numpy是Python语言的计算科学领域的基…

    编程 2025-04-28
  • Python列表转numpy数组

    本文将阐述Python中列表如何转换成numpy数组。在科学计算和数据分析领域中,numpy数组扮演着重要的角色。Python与numpy的无缝结合使得数据操作更加方便和高效。因此…

    编程 2025-04-27
  • 阿里Python技术手册

    本文将从多个方面对阿里Python技术手册进行详细阐述,包括规范、大数据、Web应用、安全和调试等方面。 一、规范 Python的编写规范对于代码的可读性和可维护性有很大的影响。阿…

    编程 2025-04-27
  • 其他字符Python——Python全能编程开发工程师手册

    为了满足不同领域对Python的需求,其他字符Python应运而生。它是一种全能的Python编程语言,提供了许多强大的功能和库,使得编程变得更加简单、高效。在本文中,我们将从不同…

    编程 2025-04-27
  • 如何查Python手册?

    想要进行Python编程,不可避免的要查看官方API文档和手册。Python文档除了包含所有Python模块和其对应的方法和属性外,还提供了包括解释器、语言参考、Python标准库…

    编程 2025-04-27
  • Python三大:NumPy、Pandas、matplotlib

    本文将详细介绍三大Python数据处理及可视化库——NumPy、Pandas以及matplotlib,为读者提供从基础使用到应用场景的全面掌握。 一、NumPy NumPy是Pyt…

    编程 2025-04-27
  • 深入解析Vue3 defineExpose

    Vue 3在开发过程中引入了新的API `defineExpose`。在以前的版本中,我们经常使用 `$attrs` 和` $listeners` 实现父组件与子组件之间的通信,但…

    编程 2025-04-25
  • 深入理解byte转int

    一、字节与比特 在讨论byte转int之前,我们需要了解字节和比特的概念。字节是计算机存储单位的一种,通常表示8个比特(bit),即1字节=8比特。比特是计算机中最小的数据单位,是…

    编程 2025-04-25
  • 深入理解Flutter StreamBuilder

    一、什么是Flutter StreamBuilder? Flutter StreamBuilder是Flutter框架中的一个内置小部件,它可以监测数据流(Stream)中数据的变…

    编程 2025-04-25
  • 深入探讨OpenCV版本

    OpenCV是一个用于计算机视觉应用程序的开源库。它是由英特尔公司创建的,现已由Willow Garage管理。OpenCV旨在提供一个易于使用的计算机视觉和机器学习基础架构,以实…

    编程 2025-04-25

发表回复

登录后才能评论