numpy常见操作总结

1.计算一个list的平均值

import numpy as np

# 创建一个包含数字的列表
my_list = [1, 2, 3, 4, 5]

# 使用numpy.mean()函数计算平均值
average = np.mean(my_list)

print("平均值:", average)

2.numpy数组查看尺寸

在 NumPy 中,您可以使用 .shape 属性来查看数组的尺寸(维度大小)。.shape 属性返回一个元组,其中包含数组在每个维度上的大小。以下是如何查看 NumPy 数组尺寸的示例代码:

import numpy as np

# 创建一个示例数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 使用 .shape 属性查看数组尺寸
array_shape = arr.shape

print("数组尺寸:", array_shape)

在这个示例中,array_shape 将是一个元组 (2, 3),表示数组的第一个维度大小为 2,第二个维度大小为 3。

如果您只想查看数组的维度数(即数组的秩),您可以使用 .ndim 属性:

import numpy as np

# 创建一个示例数组
arr = np.array([[1, 2, 3], [4, 5, 6]])

# 使用 .ndim 属性查看数组的维度数
array_dimension = arr.ndim

print("数组维度数:", array_dimension)

在这个示例中,array_dimension 将是一个整数值 2,表示数组是一个二维数组。

3.已知numpy二维数组,尺寸为224*224,现在使用裁剪框进行裁剪,裁剪框的左上角和右下角坐标为[x1,y1,x2,y2],怎么实现

您可以使用 NumPy 的数组切片操作来实现裁剪功能。根据给定的裁剪框坐标 [x1, y1, x2, y2],您可以使用切片来选择所需的区域。以下是如何实现裁剪的示例代码:

import numpy as np

# 创建一个示例的 224x224 二维数组
image_array = np.random.randint(0, 255, size=(224, 224))

# 裁剪框的左上角和右下角坐标
x1, y1, x2, y2 = 50, 50, 150, 150

# 使用切片来进行裁剪
cropped_array = image_array[y1:y2, x1:x2]

# 打印裁剪后的数组尺寸
print("裁剪后的数组尺寸:", cropped_array.shape)

在这个示例中,我们首先创建了一个随机的 224x224 二维数组 image_array 作为示例输入图像。然后,我们使用给定的裁剪框坐标 [x1, y1, x2, y2] 来使用切片操作选择裁剪区域。最后,我们打印裁剪后的数组尺寸,以确认裁剪是否成功。

请注意,切片操作不会修改原始数组,而是创建一个新的数组来表示裁剪后的区域。

4.numpy怎么把一个尺寸为(14,15)扩展元素到(14,15,3)

您可以使用 NumPy 的广播(broadcasting)功能来将一个尺寸为 (14, 15) 的数组扩展为 (14, 15, 3)。广播允许您在某些情况下自动对不同形状的数组执行操作,以使它们具有相同的形状,从而进行元素级操作。

在这种情况下,您可以通过在第三个维度上添加一个长度为 3 的新维度来扩展数组。以下是如何实现的示例代码:

import numpy as np

# 创建一个尺寸为 (14, 15) 的示例数组
array = np.random.rand(14, 15)

# 在第三个维度上添加一个长度为 3 的新维度
expanded_array = array[:, :, np.newaxis]

# 打印扩展后数组的形状
print("扩展后数组的形状:", expanded_array.shape)

在这个示例中,我们首先使用 np.random.rand(14, 15) 创建一个尺寸为 (14, 15) 的示例数组。然后,我们使用 array[:, :, np.newaxis] 在第三个维度上添加一个新维度,使数组的形状从 (14, 15) 变为 (14, 15, 1)。

如果您想要的最终形状是 (14, 15, 3),您可以使用 np.repeat() 来将新维度复制为多个通道,如下所示:

import numpy as np

# 创建一个尺寸为 (14, 15) 的示例数组
array = np.random.rand(14, 15)

# 在第三个维度上添加一个长度为 3 的新维度
expanded_array = array[:, :, np.newaxis]

# 将新维度复制为 3 个通道
expanded_array = np.repeat(expanded_array, 3, axis=2)

# 打印扩展后数组的形状
print("扩展后数组的形状:", expanded_array.shape)

这样,您就将数组从 (14, 15) 扩展为 (14, 15, 3)。

5.两个numpy相乘,尺寸需要满足什么

在 NumPy 中,两个数组相乘的规则与矩阵乘法和逐元素乘法相关。

  • 逐元素相乘: 如果您想要逐元素地将两个数组相乘,使得相同位置的元素相乘,那么数组的尺寸必须相同。也就是说,两个数组的形状(维度)必须完全一致。

  • 矩阵乘法(内积): 如果您想要进行矩阵乘法(内积),其中第一个矩阵的列数必须等于第二个矩阵的行数。结果的矩阵将具有第一个矩阵的行数和第二个矩阵的列数。例如,如果第一个矩阵的形状是 (m, n),第二个矩阵的形状是 (n, p),那么结果的矩阵形状将是 (m, p)。

以下是两种情况的示例代码:

逐元素相乘:

import numpy as np

# 创建两个相同尺寸的示例数组
array1 = np.array([[1, 2], [3, 4]])
array2 = np.array([[5, 6], [7, 8]])

# 逐元素相乘
elementwise_product = array1 * array2

print("逐元素相乘结果:")
print(elementwise_product)

矩阵乘法(内积):

import numpy as np

# 创建两个矩阵,第一个矩阵的列数等于第二个矩阵的行数
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])

# 进行矩阵乘法(内积)
matrix_product = np.dot(matrix1, matrix2)

print("矩阵乘法结果:")
print(matrix_product)

6.numpy 数组中怎么将0和1转为False和True

要将 NumPy 数组中的 0 转换为 False,将 1 转换为 True,您可以使用条件运算符或者逻辑运算来实现。以下是两种常见的方法:

  • 使用条件运算符:
import numpy as np

# 创建一个示例的 NumPy 数组
numpy_array = np.array([[0, 1, 0], [1, 0, 1]])

# 使用条件运算符将 0 转换为 False,将 1 转换为 True
bool_array = numpy_array.astype(bool)

print(bool_array)

在这个示例中,astype(bool) 将数组的元素转换为布尔类型,其中 0 被转换为 False,1 被转换为 True。

  • 使用逻辑运算:
import numpy as np

# 创建一个示例的 NumPy 数组
numpy_array = np.array([[0, 1, 0], [1, 0, 1]])
# 学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
# 使用逻辑运算将 0 转换为 False,将非零值转换为 True
bool_array = numpy_array != 0

print(bool_array)

在这个示例中,numpy_array != 0 创建了一个布尔数组,其中非零元素被转换为 True,零元素被转换为 False。

无论您选择哪种方法,最终都会得到一个布尔类型的数组,其中 0 被转换为 False,1 被转换为 True。

热门相关:女职员:职场恋爱   情事嫉妒陷阱   女朋友的味道3   邻居的妻子隔壁的妻子   豪门隐婚:老婆别闹了