陈世高 发表于 2023-11-28 18:15:54

numpy常见操作总结

1.计算一个list的平均值

import numpy as np

# 创建一个包含数字的列表
my_list =

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

print("平均值:", average)2.numpy数组查看尺寸

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

# 创建一个示例数组
arr = np.array([, ])

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

print("数组尺寸:", array_shape)在这个示例中,array_shape 将是一个元组 (2, 3),表示数组的第一个维度大小为 2,第二个维度大小为 3。
如果您只想查看数组的维度数(即数组的秩),您可以使用 .ndim 属性:
import numpy as np

# 创建一个示例数组
arr = np.array([, ])

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

print("数组维度数:", array_dimension)在这个示例中,array_dimension 将是一个整数值 2,表示数组是一个二维数组。
3.已知numpy二维数组,尺寸为224*224,现在使用裁剪框进行裁剪,裁剪框的左上角和右下角坐标为,怎么实现

您可以使用 NumPy 的数组切片操作来实现裁剪功能。根据给定的裁剪框坐标 ,您可以使用切片来选择所需的区域。以下是如何实现裁剪的示例代码:
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

# 打印裁剪后的数组尺寸
print("裁剪后的数组尺寸:", cropped_array.shape)在这个示例中,我们首先创建了一个随机的 224x224 二维数组 image_array 作为示例输入图像。然后,我们使用给定的裁剪框坐标 来使用切片操作选择裁剪区域。最后,我们打印裁剪后的数组尺寸,以确认裁剪是否成功。
请注意,切片操作不会修改原始数组,而是创建一个新的数组来表示裁剪后的区域。
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([, ])
array2 = np.array([, ])

# 逐元素相乘
elementwise_product = array1 * array2

print("逐元素相乘结果:")
print(elementwise_product)矩阵乘法(内积):
import numpy as np

# 创建两个矩阵,第一个矩阵的列数等于第二个矩阵的行数
matrix1 = np.array([, ])
matrix2 = np.array([, ])

# 进行矩阵乘法(内积)
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 转换为 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([, ])
# 学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
# 使用逻辑运算将 0 转换为 False,将非零值转换为 True
bool_array = numpy_array != 0

print(bool_array)在这个示例中,numpy_array != 0 创建了一个布尔数组,其中非零元素被转换为 True,零元素被转换为 False。
无论您选择哪种方法,最终都会得到一个布尔类型的数组,其中 0 被转换为 False,1 被转换为 True。

来源:https://www.cnblogs.com/xxpythonxx/p/17862403.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: numpy常见操作总结