欢迎访问宙启技术站
智能推送

Numpy库中数组的创建及相关函数介绍

发布时间:2023-06-09 09:09:33

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