numpy示例代码
介绍
NumPy(Numerical Python)是一个用于科学计算的 Python 库。它提供了一个高性能的多维数组对象和用于处理这些数组的工具。NumPy 的主要特点是其功能强大且易于使用。NumPy 的核心是 ndarray(N-dimensional array,多维数组)对象,它是一个固定大小的数组容器,用于存储同类型的数据。在本文中,我们将探讨一些常见的 NumPy 示例代码,帮助你理解并使用 NumPy 中的一些常用功能。
创建数组numpy库不具有的功能有
使用列表创建数组
我们可以使用 numpy.array 函数来创建一个 NumPy 数组。该函数的参数是一个列表,可以是一维或多维。下面是一个简单的示例,展示如何使用列表创建一个一维数组:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
输出结果为:
[1 2 3 4 5]
我们也可以通过将列表的列表传递给 numpy.array 函数来创建一个多维数组。下面是一个示例,展示如何创建一个形状为 2x3 的二维数组:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
输出结果为:
[[1 2 3]
[4 5 6]]
使用特殊函数创建数组
除了使用列表创建数组外,NumPy 还提供了一些特殊函数用于创建数组。下面是一些常用的特殊函数示例:
s:创建一个全为 0 的数组
s:创建一个全为 1 的数组
numpy.random.rand:创建一个随机数数组
以下是示例代码:
import numpy as np
zeros_arr = np.zeros((2, 3))
print("Array of zeros:\n", zeros_arr)
ones_arr = np.ones((2, 3))
print("Array of ones:\n", ones_arr)
random_arr = np.random.rand(2, 3)
print("Random array:\n", random_arr)
输出结果为:
Array of zeros:
[[0. 0. 0.]
[0. 0. 0.]]
Array of ones:
[[1. 1. 1.]
[1. 1. 1.]]
Random array:
[[0.44082664 0.04645766 0.30367667]
[0.10320045 0.80342808 0.1998646 ]]
数组操作
形状和尺寸
在 NumPy 中,我们可以使用 shape 属性获得数组的形状信息,使用 ndim 属性获得数组的维度信息。下面是一个示例代码:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Shape of arr:", arr.shape)
print("Number of dimensions:", arr.ndim)
输出结果为:
Shape of arr: (2, 3)
Number of dimensions: 2
我们可以使用 reshape 函数改变数组的形状。下面是一个示例代码,展示如何将一个一维数组转换为一个新的二维数组:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = shape(2, 3)
print(new_arr)
输出结果为:
[[1 2 3]
[4 5 6]]
引用和复制
在 NumPy 中,当我们对数组进行引用时,我们实际上是创建了一个数组的视图(view),而不是一个新的数组。这意味着对于视图所做的更改会反映在原始数组中。下面是一个示例代码,演示了数组视图的概念:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
view_arr = arr.view()
view_arr[0] = 9
print("Original array:", arr)
print("View array:", view_arr)
输出结果为:
Original array: [9 2 3 4 5]
View array: [9 2 3 4 5]
如果我们想要创建一个数组的副本,而不是视图,我们可以使用 copy 函数。下面是一个示例代码,展示了如何创建一个数组的副本:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
copy_arr = py()
copy_arr[0] = 9
print("Original array:", arr)
print("Copied array:", copy_arr)
输出结果为:
Original array: [1 2 3 4 5]
Copied array: [9 2 3 4 5]
数组切片
在 NumPy 中,我们可以使用切片(slicing)操作来访问数组的子集。切片操作允许我们选择数组的特定元素、行、列或更高维度的子集。下面是一些切片操作的示例代码:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
print("Elements from index 1 to 4:", arr[1:5])
arr2 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("First two rows and all columns:", arr2[:2, :])
arr3 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("Last two rows and last two columns:", arr3[1:, 1:])
输出结果为:
Elements from index 1 to 4: [2 3 4 5]
First two rows and all columns:
[[1 2 3]
[4 5 6]]
Last two rows and last two columns:
[[5 6]
[8 9]]
数组运算
数组运算符
NumPy 支持常规的数学运算符,如加法、减法、乘法和除法等。这些运算符可用于对数组的元素进行逐元素的运算。下面是一些示例代码:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
print("Element-wise addition:", arr1 + arr2)
print("Element-wise subtraction:", arr1 - arr2)
print("Element-wise multiplication:", arr1 * arr2)
print("Element-wise division:", arr1 / arr2)
输出结果为:
Element-wise addition: [5 7 9]
Element-wise subtraction: [-3 -3 -3]
Element-wise multiplication: [ 4 10 18]
Element-wise division: [0.25 0.4  0.5 ]
广播
在进行数组运算时,NumPy 支持广播功能。广播是一种用于处理具有不同形状的数组的机制。在进行广播时,NumPy 会自动调整数组的形状,以便进行运算。下面是一个示例代码,演示了广播的概念:
import numpy as np
arr1 = np.array([[1, 2, 3], [4, 5, 6]])