Python系列 之 NumPy库

本文介绍了Python的NumPy库,包括ndarray对象的创建、属性、基本操作、通函数、索引切片和迭代、形状操作、数组连接与拆分、副本和视图等内容。NumPy是用于数组计算的高效数学库,文章详细讲解了其核心概念和常用方法。

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

NumPy库

NumPy 是一个运行速度非常快的数学库,主要用于数组计算;
NumPy库不在Python的标准模块中,需要先下载NumPy库;
可以使用pip工具下载:

pip install numpy

引用NumPy库:

import numpy as np

可以通过 numpy._version_ 查看 numpy 的版本:

# 查看Numpy的版本
print("Numpy版本:", np.__version__)
# 输出:
# Numpy版本: 1.20.1

ndarray对象

Numpy包的核心对象是 ndarray;它是一系列同类型数据的集合,以 0 下标为开始进行集合中元素的索引。
ndarray 对象是用于存放同类型元素的多维数组,每个元素在内存中都有相同存储大小的区域。

创建ndarray对象

通过array函数创建 np.array(list|tuple|其他类似的数组对象)

# 参数 ndmin 可以指定数组的维度;
# 参数 dtype 可以指定数组元素的数据类型
arr = np.array((0, 1, 2), ndmin=3, dtype=float)
print("arr的元素:\n", arr)
# 输出:
# arr的元素:
#  [[[0. 1. 2.]]]

np.random.random()方法 创建ndarray对象

# np.random.random()方法 创建ndarray对象
arr_random = np.random.random((2, 2))
print("arr_random的元素:\n", arr_random)
# 输出:
# arr_random的元素:
#  [[0.98249212 0.38319581]
#  [0.0135647  0.36293739]]

np.arange()方法:

# np.arange([start, ]stop, [step, ]dtype=None) 函数 
# 类似range函数 只是不返回列表而是ndarray数组对象 dtype定义元素的数据类型
# 例如:从10-50(不含50)之间每隔10个数字选取一个数字作为数组元素,元素类型设置为float
arr_arange = np.arange(10, 50, 10, dtype=float)
print("arr_arange的元素:\n", arr_arange)
# 输出:
# arr_arange的元素:
#  [10. 20. 30. 40.]

np.linspace()方法:

# np.linspace(start, stop, num=50) 函数 
# 选取start和stop之间等差的num个元素
# 例如:选取1-5之间6个等差的数值作为数组的元素
arr_linspace = np.linspace(1, 5, 6)
print("arr_linspace的元素:\n", arr_linspace)
# 输出:
# arr_linspace的元素:
#  [1.  1.8 2.6 3.4 4.2 5. ]

很多时候数组的元素是未知的,但是数组的维度大小可能是已经确定的;可以通过zeros,ones,empty函数快速创建固定结构的数组

np.zeros方法

# np.zeros(shape: _ShapeLike) 函数 创建的数组 
# 元素默认值是 0 元素数据类型 float
# 创建和arr结构一样的元素为0的数组
# arr_zero = np.zeros(arr.shape)
arr_zero = np.zeros((1, 1, 3))
print("arr_zero的元素:\n", arr_zero)
# 输出:
# arr_zero的元素:
#  [[[0. 0. 0.]]]

np.ones方法

# np.ones(shape: _ShapeLike)  函数 创建的数组 
# 元素默认值是 1  元素数据类型 float
# arr_one = np.ones(arr.shape)
arr_one = np.ones((1, 1, 3))
print("arr_one的元素:\n", arr_one)
# 输出:
# arr_one的元素:
#  [[[1. 1. 1.]]]

np.empty方法

# np.empty(shape: _ShapeLike) 函数 创建的数组 
# 元素默认值是随机的,取决于内存状态 元素数据类型 float
# arr_empty = np.empty(arr.shape)
arr_empty = np.empty((1, 1, 3))
print("arr_empty的元素:\n", arr_empty)
# 输出:
# arr_empty的元素:
#  [[[1. 1. 1.]]]

ndarray对象的重要属性

ndim 轴:rank
ndarray.ndim 数组的轴(维度)的个数:rank
轴的概念:
[0,1,2] 该数组有一个轴,轴拥有 3 个元素
[[0,1,2],[1,2,3]]该数组有 2 个轴,第1轴长度为 2,第2轴长度为 3

arr1 = np.array(range(5))
arr2 = np.array([range(10)])
arr3 = np.array([[range(15)]])
arr4 = np.array(range(20), ndmin=4)
print("arr1轴(维度)的个数:", arr1.ndim,
      "\narr2轴(维度)的个数:", arr2.ndim,
      "\narr3轴(维度)的个数:", arr3.ndim,
      "\narr4轴(维度)的个数:", arr4.ndim)
# 输出:
# arr1轴(维度)的个数: 1 
# arr2轴(维度)的个数: 2 
# arr3轴(维度)的个数: 3 
# arr4轴(维度)的个数: 4

shape 数组的维度:
ndarray.shape 一个tuple 表示每个维度数组的长度;tuple的每个元素对应表示每个轴的长度;tuple的长度就是数组的轴的个数;如果返回tuple(n,m) 表示该数组是个 n行 m列 的矩阵

print("arr1.shape:", arr1.shape,
      "\narr2.shape:", arr2.shape,
      "\narr3.shape:", arr3.shape,
      "\narr4.shape:", arr4.shape)
# 输出:
# arr1.shape: (5,) 
# arr2.shape: (1, 10) 
# arr3.shape: (1, 1, 15) 
# arr4.shape: (1, 1, 1, 20)

size 数组元素的总和:
ndarray.size 等于 ndarray.shape 返回 tuple 元素的乘积;

print("arr1.size:", arr1.size,
      "\narr2.size:", arr2.size,
      "\narr3.size:", arr3.size,
      "\narr4.size:", arr4.size)
# 输出:
# arr1.size: 5 
# arr2.size: 10 
# arr3.size: 15 
# arr4.size: 20

dtype 数组中元素类型的对象

arr5 = np
### 安装PythonNumPy 对于不同操作系统的环境,安装`numpy`的方式有所不同。 #### Linux系统上的安装 在Linux环境下,可以通过包管理器或者pip工具来完成`numpy`的安装。使用apt-get作为包管理器的情况下,可以执行如下命令来进行一系列依赖项以及`numpy`本身的安装: ```bash sudo apt-get update sudo apt-get install build-essential python3-dev python3-setuptools python3-pip python3-smbus pip3 install numpy ``` 这组指令不仅会更新软件源列表,还会确保编译环境中必要的组件被正确部署,从而使得`numpy`能够顺利构建和运行[^4]。 #### Windows系统下的安装 由于Windows操作系统通常不会预装Python解释器,在这种情况下需要先访问官方网站python.org下载适合当前平台架构(如x86或x64)和个人需求版本号的Python发行版并按照向导指示完成整个过程。一旦Python已经就绪,则可通过启动CMD窗口输入以下命令利用pip工具在线获取最新发布的`numpy`稳定版: ```cmd pip install numpy ``` 上述命令将会自动处理所有必需的依赖关系,并将`numpy`添加到已有的Python环境中[^2]。 #### Mac OS X中的安装方式 针对苹果公司的macOS用户而言,除了采用类似于Linux下基于终端的操作外,还可以借助Homebrew这样的第三方开源项目简化流程。具体来说就是打开应用程序内的“终端”,接着键入下面给出的一串字符实现目的: ```bash brew install numpy ``` 不过在此之前可能要预先设置好Homebrew本身;当然也可以直接调用pip来做同样的事情[^1]。 如果遇到无法正常引入模块的情况,可能是IDE内部设定存在问题所致。比如当使用Eclipse集成开发环境配合PyDev插件编写程序时,应当前往菜单栏选择`Window -> Preferences -> PyDev -> Interpreters -> Python Interpreter -> Libraries`选项卡手动加入相应位置(`C:\Python27\Lib\site-packages\numpy`)至搜索路径中去[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值