Python的Numpy库应用入门(超详细教程)

目录

一、配置环境

1.1 检查是否有pip库

1.2 安装Numpy库

二、数组

2.1 生成一维数组

2.2  生成二维数组

2.3 查看数组形状

2.4 查看数组维度 

2.5 全零数组

2.6 全1数组

2.7 单位矩阵

 2.8 指定数据类型

三、索引

3.1 获取元素

3.2 重新赋值

3.3 获取行数据

3.4 获取列数据

3.5 获取某一部分

3.6 布尔值索引

3.7 获取奇数项

3.8 公式获取奇数项

3.9 np.where

3.10 偶数不变,奇数翻倍

3.11 转置

3.12 轴转换

四、运算函数 

4.1 均值

4.2 和

4.3 累加和

4.4 标准差

4.5 方差

4.6 最大值

4.7 最小值 

4.8 正态分布的随机矩阵

4.9 随机排序

4.10 均匀分布的随机数矩阵

4.11 固定范围内随机整数 

4.12 保存数据

4.13 导入数据

4.14 压缩数据 


        Python第三方库是由Python社区或其他开发者创建并维护的,扩展Python标准库功能的软件包或模块,它们提供了丰富的工具和功能,涵盖了从Web开发到数据科学、机器学习、图像处理等各个领域,使得开发工作更加高效和便捷。

一、配置环境

1.1 检查是否有pip库

在PyCharm的底部找到并打开“Terminal”选项卡。

在终端中输入命令:

 pip --version 或 pip list

如果pip已安装,你将看到pip的版本信息或已安装的库列表。如果提示“pip不是内部或外部命令”,则可能pip未安装或未正确配置。

1.2 安装Numpy库

安装NumPy的指令主要取决于你使用的Python环境和包管理工具 

在命令行或终端运行以下代码:

pip install numpy

安装成功后的展示图如下:

再检查是否安装完成: 

pip show numpy

二、数组

利用NumPy库可以生成多种形式的数组

2.1 生成一维数组

import numpy as np

A = np.array([1, 2, 3])
print(A)

2.2  生成二维数组

import numpy as np

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

2.3 查看数组形状

import numpy as np

A = np.array([[1, 2, 3],[4, 5, 6]])
print(A.shape)

2.4 查看数组维度 

import numpy as np

A = np.array([[1, 2, 3],[4, 5, 6]])
print(A.ndim)

2.5 全零数组

import numpy as np

print(np.zeros((2,3)))

2.6 全1数组

import numpy as np

print(np.ones((2,3)))

2.7 单位矩阵

import numpy as np

print(np.eye(3,3))

 2.8 指定数据类型

import numpy as np
from numpy import dtype

A1 = np.array([[1, 2, 3],[4, 5, 6]], dtype = np.float64)
A2 = np.array([[7, 8, 9],[10, 11, 12]], dtype = np.float32)
A3 = np.array([[13, 14, 15],[16, 17, 18]], dtype = np.int32)
print(A1.dtype)
print(A2.dtype)
print(A3.dtype)

变换数据类型 

import numpy as np
from numpy import dtype

A1 = np.array([[1, 2, 3],[4, 5, 6]], dtype = np.float64)
A2 = np.array([[7, 8, 9],[10, 11, 12]], dtype = np.float32)
A3 = np.array([[13, 14, 15],[16, 17, 18]], dtype = np.int32)
B1 = A1.astype(np.int32)
B2 = A2.astype(np.int8)
B3 = A3.astype(np.float32)
print(B1.dtype)
print(B2.dtype)
print(B3.dtype)

三、索引

        索引是数组中数据的编号方式,通过索引可以访问、获取或修改数组中的对应元素。在大多数编程语言中,数组的索引是从0开始的连续整数序列。 

3.1 获取元素

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
print("索引获取的元素:",A[1, 2])

3.2 重新赋值

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
A[1, 2] = 10
print(A)

3.3 获取行数据

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A[1, :])

3.4 获取列数据

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A[:, 1])

3.5 获取某一部分

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A[0:3, 1:3 ])

3.6 布尔值索引

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
index = A % 2 == 1
print(index)

3.7 获取奇数项

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
index = A % 2 == 1
print(A[index])

3.8 公式获取奇数项

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
print(A[A % 2 == 1])

3.9 np.where

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
a, b = np.where(A % 2 == 0)
# 行索引
print(a)
# 列索引
print(b)
# 数组索引
print(A[a, b])

3.10 偶数不变,奇数翻倍

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
print(np.where(A % 2 == 0, A, A * 2))

3.11 转置

如果数组是2*3,则会转置为3*2的数组,行变列、列变行

import numpy as np
from numpy import dtype

A = np.arange(9).reshape((3,3))
print(A)
print(A.T)

3.12 轴转换

import numpy as np
from numpy import dtype

A = np.arange(24).reshape(2, 3, 4)
print(A.shape)
B = A.transpose((2, 1, 0))
print(B.shape)

B = A.transpose((2, 1, 0))transpose方法用于对数组进行转置操作。括号内的参数(2, 1, 0)指定了新的维度的顺序。原始数组A的维度顺序是(深度, 高度, 宽度),即(2, 3, 4)。通过transpose((2, 1, 0))操作,我们将维度顺序改为(宽度, 高度, 深度),即(4, 3, 2)。这意味着新的数组B将有4个二维数组(深度为4),每个二维数组有3行2列。

四、运算函数 

4.1 均值

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组均值
print("数组均值", A.mean())
# 每列均值
print("每列均值", A.mean(axis=0))
# 每行均值
print("每行均值", A.mean(axis=1))

4.2 和

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组总和
print("数组总和", A.sum())
# 每列和
print("每列和", A.sum(axis=0))
# 每行和
print("每行和", A.sum(axis=1))

4.3 累加和

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组累加和
print("数组总和", A.cumsum())
# 每列累加和
print("每列和", A.cumsum(axis=0))
# 每行累加和
print("每行和", A.cumsum(axis=1))

4.4 标准差

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组标准差
print("数组标准差", A.std())
# 每列标准差
print("每列标准差", A.std(axis=0))
# 每行标准差
print("每行标准差", A.std(axis=1))

4.5 方差

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组方差
print("数组方差", A.var())
# 每列方差
print("每列方差", A.var(axis=0))
# 每行方差
print("每行方差", A.var(axis=1))

4.6 最大值

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组最大值
print("数组最大值", A.max())
# 每列最大值
print("每列最大值", A.max(axis=0))
# 每行最大值
print("每行最大值", A.max(axis=1))

4.7 最小值 

import numpy as np
from numpy import dtype

A = np.arange(15).reshape(3,5)
print(A)
# 数组最小值
print("数组最小值", A.min())
# 每列最小值
print("每列最小值", A.min(axis=0))
# 每行最小值
print("每行最小值", A.min(axis=1))

4.8 正态分布的随机矩阵

import numpy as np
from numpy import dtype

print(np.random.randn(2, 3))

4.9 随机排序

import numpy as np
from numpy import dtype

np.random.seed(10)
print(np.random.permutation(10))

4.10 均匀分布的随机数矩阵

import numpy as np
from numpy import dtype

np.random.seed(10)
print(np.random.rand(2, 3))

4.11 固定范围内随机整数 

import numpy as np
from numpy import dtype

np.random.seed(10)
print(np.random.randint(2, 8, size=6))

4.12 保存数据

import numpy as np
from numpy import dtype

A = np.arange(12).reshape(4, 3)
np.save("test.npy", A)
print("保存成功")

4.13 导入数据

import numpy as np
from numpy import dtype

A = np.load("test.npy")
print(A)

4.14 压缩数据 

import numpy as np
from numpy import dtype

A = np.arange(12).reshape(4, 3)
B = np.load("test.npy")
# 将以上两个数组压缩成一个文件
np.savez("test.npz", A = A, B = B)
# 导入保存的压缩文件
data = np.load("test.npz")
print(data["A"])

上一篇文章:Python的条件判断、循环和函数(超详细教学)-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/144829113下一篇文章: Python的pandas库基础知识(超详细教学)-CSDN博客https://blog.csdn.net/Z0412_J0103/article/details/144849671

好的,关于numpy教程,我可以为您提供以下内容: 1. numpy是什么? NumpyPython中一个强大的数学,主要用于科学计算、数值分析和数据处理。它能够高效地处理多维数组和矩阵,提供了许多数学函数和算法,可以方便地进行各种数值计算和数据处理。 2. numpy的安装 可以通过pip命令来安装numpy。在命令行输入以下命令即可: ``` pip install numpy ``` 3. numpy的基础操作 - 创建numpy数组 可以使用numpy中的array()函数来创建数组。例如: ``` import numpy as np a = np.array([1, 2, 3]) # 创建一维数组 b = np.array([[1, 2], [3, 4]]) # 创建二维数组 ``` - 数组的属性 可以通过访问数组的属性来获取其维度、形状、大小等信息。例如: ``` print(a.ndim) # 数组的维度 print(a.shape) # 数组的形状 print(a.size) # 数组的大小 ``` - 数组的切片和索引 可以使用索引和切片来访问数组中的元素。例如: ``` print(a[0]) # 访问数组中的第一个元素 print(b[1, 0]) # 访问数组中的第二行第一列元素 print(a[:2]) # 访问数组中的前两个元素 print(b[:, 1]) # 访问数组中的第二列元素 ``` - 数组运算 可以对数组进行各种数学运算,如加、减、乘、除等。例如: ``` c = a + b # 数组相加 d = a - b # 数组相减 e = a * b # 数组相乘 f = a / b # 数组相除 ``` 4. numpy的高级操作 - 广播 广播是一种numpy中的特殊机制,它可以使不同形状的数组进行算术运算。例如: ``` a = np.array([1, 2, 3]) b = np.array([2, 2, 2]) c = a + b # 广播,等价于a + np.array([2, 2, 2]) ``` - 矩阵操作 numpy中的matrix类可以方便地进行矩阵运算。例如: ``` a = np.matrix([[1, 2], [3, 4]]) b = np.matrix([[2, 2], [2, 2]]) c = a * b # 矩阵相乘 ``` - 数组的形状变换 可以使用reshape()函数来改变数组的形状。例如: ``` a = np.array([1, 2, 3, 4]) b = a.reshape(2, 2) # 将a变成2行2列的数组 ``` - 数学函数 numpy中提供了许多数学函数,如sin、cos、exp、log等。例如: ``` a = np.array([0, 30, 45, 60, 90]) b = np.sin(np.radians(a)) # 计算a的正弦值 ``` 以上就是关于numpy的基础和高级操作的简要介绍,希望对您有所帮助!
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小星袁

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

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

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

打赏作者

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

抵扣说明:

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

余额充值