Numpy库中数组的创建及相关函数介绍
Numpy是一个开源的Python科学计算库,提供了高性能的多维数组对象以及相关工具。在数据科学领域中,Numpy在数据处理、数据分析和科学计算等方面处于重要的地位。
本文将介绍Numpy库中数组的创建以及相关函数。首先我们需要通过import numpy导入Numpy库。
### 1. 数组的创建
数组是Numpy库中最重要的数据结构之一,它是Numpy库的核心。在Numpy中,数组是一个可以包含任意类型的数据元素集合,通俗点就是由若干行若干列的数据表格。
#### 1.1通过Python列表创建Numpy数组
首先通过Python的列表创建一个一维数组,然后使用numpy.array函数将其转换为Numpy实现数组:
# 创建一个一维数组 import numpy as np list1 = [1, 2, 3, 4, 5] arr1 = np.array(list1) print(arr1)
输出:
[1 2 3 4 5]
我们也可以通过传递多个列表创建Numpy多维数组:
# 创建一个二维数组 list2 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] arr2 = np.array(list2) print(arr2)
输出:
[[1 2 3] [4 5 6] [7 8 9]]
#### 1.2使用Numpy内置函数创建数组
除了使用Python列表创建Numpy数组外,Numpy库也提供了很多内置函数用来创建数组。
##### 1.2.1 np.zeros
该函数可以创建指定大小的全0数组,参数可以是一个数字或一个元组:
# 创建一个 2 x 3 的全0数组 arr3 = np.zeros((2, 3)) print(arr3)
输出:
[[0. 0. 0.] [0. 0. 0.]]
##### 1.2.2 np.ones
该函数可以创建指定大小的全1数组,参数可以是一个数字或一个元组:
# 创建一个 2 x 3 的全1数组 arr4 = np.ones((2, 3)) print(arr4)
输出:
[[1. 1. 1.] [1. 1. 1.]]
##### 1.2.3 np.eye
该函数可以创建单位矩阵,参数为矩阵的维度:
# 创建一个 3 x 3 的单位矩阵 arr5 = np.eye(3) print(arr5)
输出:
[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.]]
##### 1.2.4 np.linspace
该函数可以创建一个一维等差数列数组,参数分别为 开始值、结束值和步长,输出的数组元素数量由步长决定:
# 创建一个等差数列数组 arr6 = np.linspace(0, 10, 5) print(arr6)
输出:
[ 0. 2.5 5. 7.5 10. ]
##### 1.2.5 np.arange
该函数可以创建一个一维数组,参数分别为起始点、终止点和步长:
# 创建一个等差数列数组 arr7 = np.arange(0, 10, 2) print(arr7)
输出:
[0 2 4 6 8]
##### 1.2.6 np.random
该模块可以生成随机数组,下面是两个例子:
# 创建一个随机数组 arr8 = np.random.rand(3,3) print(arr8)
输出:
[[0.20526413 0.60977005 0.81151851] [0.97175741 0.09749827 0.41000215] [0.02089794 0.5501619 0.25108897]]
# 创建一个随机整数数组 arr9 = np.random.randint(1, 100, size=(3,3)) print(arr9)
输出:
[[36 95 38] [97 56 74] [85 33 39]]
### 2. 数组的属性
在Numpy中数组也有一些特殊的属性,我们可以使用这些属性来查询数组的信息。
import numpy as np
arr = np.random.rand(3,3)
print(arr)
print("数组形状:", arr.shape) # 数组形状
print("数组数值类型:", arr.dtype) # 数组数值类型
print("数组维度:", arr.ndim) # 数组维度,即轴的数量
print("数据元素数量:", arr.size) # 数据元素数量
输出:
[[0.05283593 0.45453901 0.85498664] [0.95916192 0.15053571 0.67572234] [0.30403177 0.79741748 0.94425492]] 数组形状: (3, 3) 数组数值类型: float64 数组维度: 2 数据元素数量: 9
### 3. 数组的索引与切片
在Numpy库中,我们可以通过索引和切片来访问和操作数组。
#### 3.1 一维数组
对于一维数组,我们可以使用常规的方式来进行索引和切片,如下面的例子:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print("数组中 个元素:", arr[0])
print("数组中前三个元素:", arr[:3])
print("数组中后两个元素:", arr[-2:])
输出:
数组中 个元素: 1 数组中前三个元素: [1 2 3] 数组中后两个元素: [4 5]
#### 3.2 多维数组
对于多维数组,我们需要使用多个索引和切片组合来访问和操作数组中的元素。
import numpy as np
arr = np.array([[1,2,3], [4,5,6], [7,8,9]])
print("数组中第二行第三个元素:", arr[1, 2])
print("数组中 列:", arr[:, 0])
print("数组中前两行:", arr[:2, :])
输出:
数组中第二行第三个元素: 6 数组中 列: [1 4 7] 数组中前两行: [[1 2 3] [4 5 6]]
### 4. 数组变形与组合
Numpy库提供了一些用于变形与组合数组的函数。
#### 4.1 reshape函数
通过reshape函数可以改变数组的形状:
import numpy as np arr = np.array([1,2,3,4,5,6,7,8,9]) arr_reshape = arr.reshape((3,3)) print(arr_reshape)
输出:
[[1 2 3] [4 5 6] [7 8 9]]
#### 4.2 concatenate函数
通过concatenate函数可以按指定轴拼接数组:
import numpy as np arr1 = np.array([[1,2,3], [4,5,6]]) arr2 = np.array([[7,8,9], [10,11,12]]) arr3 = np.concatenate((arr1, arr2), axis=0) print(arr3)
输出:
[[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]]
#### 4.3 stack函数
通过stack函数可以按指定轴合并数组:
`python
import numpy as np
arr1 = np.array
