使用 NumPy 之前需要输入 import numpy as np
创建数组的不同函数
创建数组----np.array()
数组名=np.array()
np.array()
是 NumPy 库中用于创建数组的函数。它可以将 Python 的列表、元组、或其他序列类型转换为 NumPy 数组,目的是利用 NumPy 提供的高效数组操作功能。
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
- object: 要转换为数组的对象(如列表、元组、或其他数组)。
- dtype: 数据类型,可以指定返回数组的数据类型。如不指定,NumPy 会自动推断数据类型。
- copy: 默认为 True。如果原始数据是可修改的,是否要确保返回数组是其副本。
- order: 读取和写入多维数据的顺序,可以是 'C'(C 顺序,行优先)或 'F'(Fortran 顺序,列优先),默认为 'K'。
- subok: 默认为 False,表示若输入是子类,则返回基类的数组。如果为 True,将保持输入的子类。
- ndmin: 指定返回数组的最小维度。
1. 从列表创建数组
import numpy as np
# 从 Python 列表创建 NumPy 数组
arr = np.array([1, 2, 3, 4])
print(arr) # 输出: [1 2 3 4]
2.从嵌套列表创建二维数组
# 从嵌套列表创建二维数组
arr_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(arr_2d)
# 输出:
# [[1 2 3]
# [4 5 6]]
3. 指定数据类型
# 创建一个numpy数组并指定数据类型为浮点数
arr_float = np.array([1, 2, 3], dtype=float)
print(arr_float) # 输出: [1. 2. 3.]
创建数组----np.zeros()
创建一个指定形状的数组,所有元素初始化为零。
import numpy as np
# 创建一个 2x3 的零数组
zeros_array = np.zeros((2, 3))
print(zeros_array)
# 输出:
# [[0. 0. 0.]
创建数组----np.ones()
创建一个指定形状的数组,所有元素初始化为一。
# 创建一个 2x3 的全一数组
ones_array = np.ones((2, 3))
print(ones_array)
# 输出:
# [[1. 1. 1.]
# [1. 1. 1.]]
创建数组----np.arange()
生成一个包含指定范围内的等间隔的数字的数组。
# 创建一个从 0 到 9 的一维数组
arange_array = np.arange(10)
print(arange_array) # 输出: [0 1 2 3 4 5 6 7 8 9]
# 指定步长
arange_step_array = np.arange(0, 10, 2)
print(arange_step_array) # 输出: [0 2 4 6 8]
创建数组----np.eye()
创建一个单位矩阵(对角线为 1,其余元素为 0)。
# 创建一个 3x3 的单位矩阵
eye_matrix = np.eye(3)
print(eye_matrix)
# 输出:
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
创建数组----np.random.rand()
生成指定形状的随机数数组,数值服从均匀分布 [0, 1)。
# 创建一个 2x3 的随机数数组
random_array = np.random.rand(2, 3)
print(random_array)
range(len())
实则为两个内置函数的组合(类似于数学中的外函数和内函数)。range(len())
不是一个独立的函数,而是 Python 中常用的组合用法,通常用来生成一个整数序列。
len()
len()
是一个内置函数,用于返回一个对象(如列表、元组、字符串等)的长度或元素个数。
my_list = [1, 2, 3, 4]
length = len(my_list) # 返回 4
print(length) # 输出: 4
range()
range()
是一个内置函数,用于生成一个整数序列。可以接受一个、两个或三个参数:
range(stop)
: 生成从 0 到stop-1
的整数。range(start, stop)
: 生成从start
到stop-1
的整数。range(start, stop, step)
: 生成从start
到stop-1
,步长为step
的整数。
for i in range(5):
print(i) # 输出: 0 1 2 3 4
range(len())
的用法
将这两个函数结合使用时,range(len(some_list))
常用来生成一个索引序列,适用于迭代一个列表或其他可迭代对象的索引。
示例:
假设你有一个列表,想通过索引遍历该列表的元素:
my_list = ['apple', 'banana', 'cherry']
for i in range(len(my_list)):
print(i, my_list[i])
输出
0 apple
1 banana
2 cherry
数组名.shape
b=np.array([1,2,3],[4,5,6],dtype='float64')
Nrows,Ncols=b.shape #列表名.shape
for j in range(Nrows):
print(b[0,j])
#输出 1 2 3
shape
属性告诉你数组的结构,包括每个维度的大小。对于一维数组,shape
返回一个包含一个元素的元组;对于二维数组,shape
返回一个包含两个元素的元组,分别代表行数和列数;对于三维数组,shape
返回一个包含三个元素的元组,分别代表深度、高度和宽度,依此类推。
一维数组
import numpy as np
# 创建一个一维数组
array_1d = np.array([1, 2, 3, 4, 5])
print(array_1d.shape) # 输出: (5,)
二维数组
# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d.shape) # 输出: (2, 3) 表示有 2 行 3 列
三维数组
# 创建一个三维数组
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(array_3d.shape) # 输出: (2, 2, 2) 表示有 2 个 2x2 的矩阵
matplotlib.pyplot
matplotlib.pyplot
【记忆:plot是图标相关;lib是library的缩写“图书馆”,或者翻译成“库”】是 Matplotlib 库中的一个模块,通常用于绘制各种类型的图形。在数据可视化中,它提供大量的绘图功能,类似于 MATLAB 的绘图方式,用户可以使用简单的命令来创建复杂的图形。
使用前需要导入matplotlib模块,可以通过以下方式导入
import matploblib.pyplot as plt
绘制折线图--plt.plot(x,y)
import numpy as np
import matplotlib.pyplot as plt
#创建数据
x = np.linspace(0,10,100)#生成从0到10的100个点
y = np.sin(x)
#绘制折线图
plt.plot(x,y)
plt.title('Sine wave')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid()#绘制折线图
plt.show()
结果显示
绘制散点图--plt.sactter(x,y)
import numpy as np
import matplotlib.pyplot as plt
#生成随机数据
x = np.random.rand(10)
y = np.random.rand(10)
#绘制散点图
plt.scatter(x,y)#生成散点图的函数格式
plt.title('Random Scatter Plot')
plt.xlabel('x-axis')
plt.ylabel('y-axis')
plt.grid()
plt.show()
绘制柱状图-plt.bar(x,y)
import numpy as np
import matplotlib.pyplot as plt
# 创建数据
categories = ['A', 'B', 'C', 'D']
values = [10, 15, 7, 10]
# 绘制柱状图
plt.bar(categories, values)#绘制柱状图函数指令
plt.title('Bar Chart')
plt.xlabel('Categories')
plt.ylabel('Values')
plt.show()
numpy.linspace()----np.linspace()
是 NumPy 库中用于生成等间隔数值序列的函数。这个函数在数值计算和数据可视化时非常有用,特别是在需要生成一组具有相同间隔的数值时,例如绘图、采样点等。
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
- start: 序列的起始值。
- stop: 序列的结束值。
- num: 生成的样本数量,默认是 50。
- endpoint: 结束值是否包含在序列中,默认为 True。如果设为 False,则停止点不包含在内。
- retstep: 如果为 True,则返回样本间距 (step),默认为 False。
- dtype: 输出数组的数据类型。
np.random.rand()
np.random.rand()
是 NumPy 库中的一个函数,用于生成指定形状的随机数数组,这些随机数服从均匀分布,范围在 [0, 1) 之间
生成任意维度的数组。这里以1,2,3维为例:
一维数组:代码及结果
import numpy as np
import matplotlib.pyplot as ply
array_1d = np.random.rand(5)
print(array_1d)
二维数组:代码及结果
import numpy as np
import matplotlib.pyplot as ply
array_2d = np.random.rand(5,6)
print(array_2d)
三维数组:代码及结果
import numpy as np
import matplotlib.pyplot as ply
array_3d = np.random.rand(5,6,3)
print(array_3d)
plt.grid()
是一个函数,用于在 Matplotlib 绘图中添加网格线。使用网格线可以帮助视图更好地对齐数据点,增强图表的可读性和视觉效果。
可以通过参数控制网格线的样式,比如线型、颜色和透明度等,例如
plt.grid(color='gray', linestyle='--', linewidth=0.5)
比如:
结果: