【Python 基础 2022 最新】第六课 Numpy
Python 基础教程 2022 最新. Numpy 是 Python 非常重要的一个库, 为我们提供了大量数据处理的函数.
·
【Python 基础 2022 最新】第六课 Numpy
概述
从今天开始, 小白我将带领大家学习一下 Python 零基础入门的内容. 本专栏会以讲解 + 练习的模式, 带领大家熟悉 Python 的语法, 应用, 以及代码的基础逻辑.
Numpy
Numpy 是 Python 非常重要的一个库, 为我们提供了大量数据处理的函数.
Numpy 安装
安装命令:
pip install numpy
pip3 install numpy
Anaconda
Anaconda 是一个计算科学库, 可以为我们提供便利的 Python 环境.
安装:
Anaconda 官网
导包
导入 Numpy 包:
# 导包
import numpy as np

ndarray
ndarray 是 Numpy 最重要的一个特点. ndarray 是一个 N 维数组对象.
np.array 创建
np.array
可以帮助我们创建一 ndarray.
格式:
numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)
参数:
- object: 类数组
- dtype: 数据类型, 可选
例子:
# 导包
import numpy as np
# 创建ndarray
array1 = np.array([1, 2, 3]) # 通过lsit创建
array2 = np.array([1, 2, 3], dtype=float)
# 调试输出
print(array1, type(array1))
print(array2, type(array2))
输出结果:
# 导包
import numpy as np
# 创建ndarray
array1 = np.array([1, 2, 3]) # 通过lsit创建
array2 = np.array([1, 2, 3], dtype=float)
# 调试输出
print(array1, type(array1))
print(array2, type(array2))
np.zeros 创建
np.zeros
可以帮助我们创建指定形状的全 0 数组.
格式:
numpy.zeros(shape, dtype=float, order='C', *, like=None)
参数:
- shape: 数组形状
- detype: 默认为 float, 浮点型
例子:
import numpy as np
# 创建全0的ndarray
array = np.zeros((3, 3), dtype=int)
print(array)
输出结果:
[[0 0 0]
[0 0 0]
[0 0 0]]
np.ones 创建
np.zeros
可以帮助我们创建指定形状的全 1 数组.
格式:
numpy.ones(shape, dtype=float, order='C', *, like=None)
参数:
- shape: 数组形状
- detype: 默认为 float, 浮点型
例子:
import numpy as np
# 创建全1的ndarray
array = np.ones((3, 3), dtype=int)
print(array)
print(type(array))
输出结果:
[[1 1 1]
[1 1 1]
[1 1 1]]
<class 'numpy.ndarray'>
常用函数
reshape
通过reshape()
我们可以改变数组形状.
格式:
numpy.reshape(arr, newshape, order='C')
参数:
- arr: 需要改变形状的数组
- newshape: 新的形状
例子:
import numpy as np
# 创建ndarray
array = np.zeros(9)
print(array)
# reshape
array = array.reshape((3,3))
print(array)
print(array.shape) # 调试输出数组形状
输出结果:
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
(3, 3)
flatten
通过flatten()
我们可以将多维数组摊平成1 维数组.
例子:
import numpy as np
# 创建多维数组
array = np.zeros((3, 3))
print(array)
# flatten转变为一维数组
array = array.flatten()
print(array)
输出结果:
[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]
[0. 0. 0. 0. 0. 0. 0. 0. 0.]
练习
练习1
数组创建与基础操作:
- 创建一个形状为 (5, 5) 的数组,其中所有元素都为整数1。
- 创建一个长度为 20 的一维随机整数数组,范围在 1 到 100 之间。
- 将上述一维数组重新塑形为 (5, 4) 的二维数组。
练习2
数组索引与切片:
- 创建一个形状为 (10, 10) 的随机整数数组,范围在 1 到 100 之间。提取出其中的第 3 到 8 行,第 4 到 9 列的子数组。
- 从上述数组中,提取出所有的偶数元素。
练习3
数组操作与数学运算:
- 创建两个形状为 (3, 3) 的随机整数数组 A 和 B,范围在 1 到 10 之间。计算 A 与 B 的点积。
- 计算上述数组 A 的逆矩阵(如果存在)。
参考答案
练习1
import numpy as np
array = np.ones([5,5], dtype=int)
print(array)
array = np.random.randint(1, 101, size=20)
print(array)
array = array.reshape((5, 4))
print(array)
输出结果:
[[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
[22 13 20 67 5 91 26 64 84 85 59 66 44 83 41 63 44 23 76 35]
[[22 13 20 67]
[ 5 91 26 64]
[84 85 59 66]
[44 83 41 63]
[44 23 76 35]]
练习2
import numpy as np
array = np.random.randint(1, 101, size=(10, 10)).reshape((10,10))
print(array)
array = array[2:8, 3:9]
print(array)
array = array[array % 2 == 0]
print(array)
输出结果:
[[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
[ 32 6 91 48 63 81 87 28 19 25 20 93 97 100 70 77 3 46
100 7]
[[ 32 6 91 48]
[ 63 81 87 28]
[ 19 25 20 93]
[ 97 100 70 77]
[ 3 46 100 7]]
[[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
[71 63 6 50 59 69 14 18 80 88 68 54 35 97 51 82 86 50 61 9]
[[71 63 6 50]
[59 69 14 18]
[80 88 68 54]
[35 97 51 82]
[86 50 61 9]]
练习3
import numpy as np
a = np.random.randint(1, 11, size=(3, 3))
b = np.random.randint(1, 11, size=(3, 3))
print(a)
print(b)
result = np.dot(a, b)
print(result)
det_a = np.linalg.det(a)
if det_a == 0:
print("矩阵 A 不可逆")
else:
inverse_a = np.linalg.inv(a)
print("A 的逆矩阵为: \n", inverse_a)
输出结果:
[[ 8 6 4]
[10 5 5]
[ 7 7 9]]
[[ 7 2 9]
[10 9 6]
[ 5 7 1]]
[[136 98 112]
[145 100 125]
[164 140 114]]
A 的逆矩阵为:
[[-9.09090909e-02 2.36363636e-01 -9.09090909e-02]
[ 5.00000000e-01 -4.00000000e-01 -7.93016446e-18]
[-3.18181818e-01 1.27272727e-01 1.81818182e-01]]

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)