Numpy数组的维度

Numpy数组的维度

参考:numpy array dimensions

Numpy是Python中一个强大的数值计算库,它提供了一个高性能的多维数组对象ndarray。了解Numpy数组的维度是使用Numpy进行科学计算的基础。本文将详细介绍Numpy数组的维度,并通过一系列示例代码来展示如何在实际中操作和使用这些维度。

一维数组

一维数组是最简单的Numpy数组形式,它类似于Python中的列表。以下是创建和操作一维数组的示例代码:

import numpy as np

# 创建一个一维数组
array_1d = np.array([1, 2, 3, 4, 5])
print(array_1d)

Output:

Numpy数组的维度

二维数组

二维数组在Numpy中非常常见,它类似于数学中的矩阵。以下是创建和操作二维数组的示例代码:

import numpy as np

# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
print(array_2d)

Output:

Numpy数组的维度

多维数组

Numpy可以创建和操作高于二维的数组,这些数组可以表示更高维度的数据结构。以下是创建和操作三维数组的示例代码:

import numpy as np

# 创建一个三维数组
array_3d = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(array_3d)

Output:

Numpy数组的维度

数组维度的查询

可以使用ndarray对象的shape属性来查询数组的维度。以下是查询数组维度的示例代码:

import numpy as np

# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 查询数组的维度
print(array_2d.shape)

Output:

Numpy数组的维度

数组维度的变换

可以使用reshape方法来改变数组的维度。以下是改变数组维度的示例代码:

import numpy as np

# 创建一个一维数组
array_1d = np.arange(6)

# 将一维数组变换为二维数组
array_2d = array_1d.reshape((2, 3))
print(array_2d)

Output:

Numpy数组的维度

数组维度的扩展

可以使用np.newaxisexpand_dims来增加数组的维度。以下是增加数组维度的示例代码:

import numpy as np

# 创建一个一维数组
array_1d = np.array([1, 2, 3])

# 使用np.newaxis增加数组维度
array_2d_v1 = array_1d[:, np.newaxis]
print(array_2d_v1)

# 使用expand_dims增加数组维度
array_2d_v2 = np.expand_dims(array_1d, axis=1)
print(array_2d_v2)

Output:

Numpy数组的维度

数组维度的压缩

可以使用squeeze方法来减少数组中的单维度条目。以下是减少数组维度的示例代码:

import numpy as np

# 创建一个三维数组,其中第二维是单维度
array_3d = np.array([[[1], [2], [3]]])

# 使用squeeze减少数组维度
array_2d = array_3d.squeeze()
print(array_2d)

Output:

Numpy数组的维度

数组维度的交换

可以使用transposeswapaxes来交换数组的维度。以下是交换数组维度的示例代码:

import numpy as np

# 创建一个二维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])

# 使用transpose交换数组维度
array_2d_t = array_2d.transpose()
print(array_2d_t)

# 使用swapaxes交换数组维度
array_2d_s = np.swapaxes(array_2d, 0, 1)
print(array_2d_s)

Output:

Numpy数组的维度

数组维度的拼接

可以使用concatenatevstackhstack来拼接具有相同维度的数组。以下是拼接数组维度的示例代码:

import numpy as np

# 创建两个二维数组
array_2d_1 = np.array([[1, 2], [3, 4]])
array_2d_2 = np.array([[5, 6], [7, 8]])

# 使用concatenate拼接数组
array_2d_concat = np.concatenate((array_2d_1, array_2d_2), axis=0)
print(array_2d_concat)

# 使用vstack垂直拼接数组
array_2d_vstack = np.vstack((array_2d_1, array_2d_2))
print(array_2d_vstack)

# 使用hstack水平拼接数组
array_2d_hstack = np.hstack((array_2d_1, array_2d_2))
print(array_2d_hstack)

Output:

Numpy数组的维度

数组维度的分割

可以使用splitvsplithsplit来分割数组。以下是分割数组维度的示例代码:

import numpy as np

# 创建一个二维数组
array_2d = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])

# 使用split分割数组
arrays_split = np.split(array_2d, 2, axis=1)
print(arrays_split)

# 使用vsplit垂直分割数组
arrays_vsplit = np.vsplit(array_2d, 2)
print(arrays_vsplit)

# 使用hsplit水平分割数组
arrays_hsplit = np.hsplit(array_2d, 2)
print(arrays_hsplit)

Output:

Numpy数组的维度

数组维度的广播

广播(Broadcasting)是Numpy中一种强大的机制,它允许不同形状的数组进行数学运算。以下是数组维度广播的示例代码:

import numpy as np

# 创建一个二维数组和一个一维数组
array_2d = np.array([[1, 2, 3], [4, 5, 6]])
array_1d = np.array([1, 2, 3])

# 一维数组和二维数组相加,触发广播机制
array_broadcasted = array_2d + array_1d
print(array_broadcasted)

Output:

Numpy数组的维度

数组维度的迭代

可以使用nditer来迭代多维数组中的元素。以下是迭代数组维度的示例代码:

import numpy as np

# 创建一个二维数组
array_2d = np.array([[1, 2], [3, 4]])

# 使用nditer迭代数组
for element in np.nditer(array_2d):
    print(element)

Output:

Numpy数组的维度

数组维度的堆叠

堆叠是将多个数组沿着新的轴合并的过程。以下是堆叠数组维度的示例代码:

import numpy as np

# 创建两个一维数组
array_1d_1 = np.array([1, 2, 3])
array_1d_2 = np.array([4, 5, 6])

# 使用stack堆叠数组
array_2d = np.stack((array_1d_1, array_1d_2), axis=0)
print(array_2d)

Output:

Numpy数组的维度

数组维度的排序

Numpy提供了多种排序函数,如sortargsortlexsort等。以下是排序数组维度的示例代码:

import numpy as np

# 创建一个二维数组
array_2d = np.array([[3, 2, 1], [6, 5, 4]])

# 使用sort排序数组
array_2d_sorted = np.sort(array_2d, axis=1)
print(array_2d_sorted)

Output:

Numpy数组的维度

数组维度的搜索

Numpy提供了多种搜索函数,如argmaxargminwhere等。以下是搜索数组维度的示例代码:

import numpy as np

# 创建一个一维数组
array_1d = np.array([1, 2, 3, 2, 1])

# 使用argmax搜索数组中的最大值索引
index_max = np.argmax(array_1d)
print(index_max)

# 使用where搜索数组中等于2的元素索引
indices_2 = np.where(array_1d == 2)
print(indices_2)

Output:

Numpy数组的维度

数组维度的计数

Numpy提供了多种计数函数,如count_nonzerobincount等。以下是计数数组维度的示例代码:

import numpy as np

# 创建一个一维数组
array_1d = np.array([1, 0, 3, 0, 1])

# 使用count_nonzero计数数组中非零元素的个数
count_nonzero = np.count_nonzero(array_1d)
print(count_nonzero)

# 使用bincount计数数组中每个元素出现的次数
counts = np.bincount(array_1d)
print(counts)

Output:

Numpy数组的维度

数组维度的统计

Numpy提供了多种统计函数,如meanmedianstd等。以下是统计数组维度的示例代码:

import numpy as np

# 创建一个一维数组
array_1d = np.array([1, 2, 3, 4, 5])

# 使用mean计算数组的平均值
mean = np.mean(array_1d)
print(mean)

# 使用std计算数组的标准差
std = np.std(array_1d)
print(std)

Output:

Numpy数组的维度

以上就是Numpy数组维度的详细介绍,希望对你有所帮助。更多Numpy的使用技巧,欢迎访问numpyarray.com。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程