Numpy 对象中的数组

Numpy 对象中的数组

Numpy是用Python语言编写的一个科学计算库,它提供了高效的多维数组对象、丰富的数组操作函数以及模块化的工具集,是Python数据分析和科学计算的重要组成部分。在本文中,我们将重点介绍Numpy中的数组对象,并讲解如何创建、操作以及使用Numpy数组。

阅读更多:Numpy 教程

Numpy数组创建

在使用Numpy中的数组之前,首先要创建它。我们可以使用Numpy提供的array()函数来创建一个数组,例如:

import numpy as np

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

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

输出结果:

[1 2 3]
[[1 2 3]
 [4 5 6]]

当我们使用array()函数创建数组时,Numpy会自动根据输入的数据类型来确定数组的数据类型。例如,上面代码中创建的一维数组和二维数组的数据类型都是int64。我们也可以手动指定数组的数据类型,在创建数组时,同时传递dtype参数即可。例如:

# 创建一个浮点型一维数组
arr3 = np.array([1.0, 2.0, 3.0], dtype=np.float32)
print(arr3)

# 创建一个字符串型的一维数组
arr4 = np.array(["hello", "world"])
print(arr4)

输出结果:

[1. 2. 3.]
['hello' 'world']

Numpy数组操作

Numpy提供了丰富的数组操作函数,它们可以让我们方便地对数组进行各种操作,例如:计算统计量,索引和切片,重塑和转换等。下面我们将介绍一些常见的数组操作函数。

计算统计量

在Numpy中,我们可以使用mean()、sum()、min()、max()等函数来计算数组元素的均值、总和、最小值和最大值。例如:

# 计算一维数组的均值、总和、最小值和最大值
arr5 = np.array([1, 2, 3, 4])
print(arr5.mean())
print(arr5.sum())
print(arr5.min())
print(arr5.max())

# 计算二维数组的均值、总和、最小值和最大值
arr6 = np.array([[1, 2], [3, 4]])
print(arr6.mean())
print(arr6.sum())
print(arr6.min())
print(arr6.max())

输出结果:

2.5
10
1
4
2.5
10
1
4

索引和切片

在Numpy中,我们可以使用数组索引和切片来访问数组中的元素或子数组。例如:

# 访问一维数组中的元素
arr7 = np.array([1, 2, 3, 4])
print(arr7[0])
print(arr7[-1])

# 访问二维数组中的元素
arr8 = np.array([[1, 2], [3, 4], [5, 6]])
print(arr8[0, 0])
print(arr8[-1, -1])

# 切片一维数组
print(arr7[1:3])

# 切片二维数组
print(arr8[1:, :])

输出结果:

1
4
1
6
[2 3]
[[3 4]
 [5 6]]

重塑和转换

在Numpy中,我们可以使用reshape()函数来重塑数组的形状。例如:

# 一维数组重塑为二维数组
arr9 = np.array([1, 2, 3, 4, 5, 6])
print(arr9.reshape(2, 3))

# 二维数组重塑为一维数组
arr10 = np.array([[1, 2], [3, 4], [5, 6]])
print(arr10.reshape(-1))

# 类型转换
arr11 = np.array([1, 2, 3], dtype=np.float32)
print(arr11.dtype)
arr12 = arr11.astype(np.int32)
print(arr12)
print(arr12.dtype)

输出结果:

[[1 2 3]
 [4 5 6]]
[1 2 3 4 5 6]
float32
[1 2 3]
int32

Numpy数组使用

除了以上介绍的数组创建和操作外,Numpy中的数组还有很多其他用法。下面我们将通过一些代码示例来进一步说明。

创建随机数组

我们可以使用Numpy中的random模块来生成随机数组。例如:

# 初始化随机数种子,保证每次生成的随机数相同
np.random.seed(0)

# 创建一个随机一维数组,元素值在[0, 1)之间
arr13 = np.random.rand(5)
print(arr13)

# 创建一个随机二维数组,元素值在[0, 1)之间
arr14 = np.random.rand(3, 2)
print(arr14)

# 创建一个随机一维数组,元素值符合标准正态分布
arr15 = np.random.randn(5)
print(arr15)

# 创建一个随机二维数组,元素值符合标准正态分布
arr16 = np.random.randn(3, 2)
print(arr16)

输出结果:

[0.5488135  0.71518937 0.60276338 0.54488318 0.4236548 ]
[[0.64589411 0.43758721]
 [0.891773   0.96366276]
 [0.38344152 0.79172504]]
[ 1.76405235  0.40015721  0.97873798  2.2408932   1.86755799]
[[-0.97727788  0.95008842]
 [-0.15135721 -0.10321885]
 [ 0.4105985   0.14404357]]

批量操作

我们可以使用Numpy中的函数对数组进行批量的运算。例如:

# 计算两个一维数组的和
arr17 = np.array([1, 2, 3])
arr18 = np.array([4, 5, 6])
print(np.add(arr17, arr18))

# 计算二维数组每列的均值
arr19 = np.array([[1, 2], [3, 4], [5, 6]])
print(np.mean(arr19, axis=0))

输出结果:

[5 7 9]
[3. 4.]

数组拼接

Numpy还提供了一些函数,用于将多个数组拼接成一个更大的数组。例如:

# 拼接两个一维数组
arr20 = np.array([1, 2, 3])
arr21 = np.array([4, 5, 6])
print(np.concatenate((arr20, arr21)))

# 拼接两个二维数组
arr22 = np.array([[1, 2], [3, 4]])
arr23 = np.array([[5, 6], [7, 8]])
print(np.concatenate((arr22, arr23), axis=1))

输出结果:

[1 2 3 4 5 6]
[[1 2 5 6]
 [3 4 7 8]]

总结

本文对Numpy中的数组进行了介绍,包括创建和操作数组的方法,以及使用数组进行统计计算、索引切片和数组拼接等主要用法。通常情况下,我们可以使用Numpy数组来替代Python自带的列表,获得更高效的计算和更方便的操作。希望通过本文的介绍,您对Numpy数组有更深入的了解和掌握。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程