您的位置:

Python Numpy数组:高效可靠的数据存储和处理工具

随着大数据时代和人工智能的快速发展,数据处理和分析成为了数据科学家和程序员们的日常工作之一。在Python中,Numpy(Numerical Python)是一个很常用的库,用于高效而可靠地存储和处理数据。

一、基本介绍

Numpy是一个开源的库,支持Python语言用于数值计算、科学计算和数据分析。Numpy由多维数组对象和一组用于操作数组的函数构成,数组是一个通用的数据结构,用于存储元素的集合,这些元素可以是数字,字符串或其他任何对象。

Numpy的优势在于其性能和效率:它允许开发人员在Python中高效地执行大量的数值操作,尤其适用于数组和矩阵计算。由于其采用了C语言作为内部实现,Numpy的执行速度比传统的Python方法更快。

在使用Numpy之前,需要先安装Numpy库。可以使用以下命令安装:

pip install numpy

二、Numpy数组的创建

Numpy数组的创建非常简单,可以从已有数组创建、从Python列表、元组中创建或者使用专门的函数进行创建。

1. 从已有数组创建

可以使用numpy.asarray()函数从已有数组创建数组:

import numpy as np
a = np.array([1, 2, 3])
b = np.asarray(a)
print(b)
输出结果为:[1 2 3]

2. 从Python列表、元组中创建

可以使用numpy.array()函数从Python列表、元组中创建数组:

import numpy as np
a = np.array([1, 2, 3])
b = np.array([(1, 2, 3), (4, 5, 6)])
print(a)
print(b)
输出结果为:
[1 2 3]
[[1 2 3]
[4 5 6]]

3. 使用专门的函数进行创建

Numpy提供了一些函数,用于创建特定的数组,例如numpy.zeros()、numpy.ones()、numpy.empty()、numpy.arange()、numpy.linspace()

import numpy as np
a = np.zeros((2,3))
b = np.ones((2,3))
c = np.empty((2,3))
d = np.arange(1, 11, 2)
e = np.linspace(0, 1, num=5)
print(a)
print(b)
print(c)
print(d)
print(e)
输出结果为:
[[0. 0. 0.]
[0. 0. 0.]]
[[0. 0. 0.]
[0. 0. 0.]]
[[1.00000000e+000 1.00000000e+000 2.24982284e-314]
[1.79769313e+308 1.00000000e+000 0.00000000e+000]]
[1 3 5 7 9]
[0. 0.25 0.5 0.75 1.]

三、Numpy数组的操作

1. 访问数组元素

可以使用下标访问数组元素:

import numpy as np
a = np.array([(1, 2, 3), (4, 5, 6)])
print(a[0, 0])
print(a[1, 2])
输出结果为:
1
6

2. 数组切片

Numpy数组支持和Python列表一样的切片操作:

import numpy as np
a = np.array([(1, 2, 3), (4, 5, 6)])
print(a[0:2, 0:2])
输出结果为:
[[1 2]
[4 5]]

3. 数组形状操作

Numpy数组可以通过reshape()函数改变形状,或者使用flatten()函数将多维数组转换为一维数组。

import numpy as np
a = np.array([(1, 2, 3), (4, 5, 6)])
print(a.shape)
b = a.reshape(3, 2)
print(b)
c = a.flatten()
print(c)
输出结果为:
(2, 3)
[[1 2]
[3 4]
[5 6]]
[1 2 3 4 5 6]

四、Numpy数组的计算

Numpy数组支持多种数学计算功能,包括基本的数学运算、矩阵计算、统计计算、排序等。

1. 基本数学运算

可以对Numpy数组进行基本的算术运算,例如加减乘除、乘方运算、取模运算等:

import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b
d = a - b
e = a * b
f = b / a
g = a ** 2
h = b % a
print(c)
print(d)
print(e)
print(f)
print(g)
print(h)
输出结果为:
[5 7 9]
[-3 -3 -3]
[ 4 10 18]
[4. 2.5 2.]
[1 4 9]
[0 1 0]

2. 矩阵计算

Numpy数组支持矩阵的加减乘除,可以使用np.dot()函数进行矩阵乘积计算:

import numpy as np
a = np.array([(1, 2), (3, 4)])
b = np.array([(5, 6), (7, 8)])
c = a + b
d = a - b
e = np.dot(a, b)
f = np.linalg.det(a)
g = np.linalg.inv(a)
print(c)
print(d)
print(e)
print(f)
print(g)
输出结果为:
[[ 6 8]
[10 12]]
[19 22]
-2.0000000000000004
[[-2. 1.]
[ 1.5 -0.5]]

3. 统计计算

Numpy数组可以进行统计计算,例如计算平均值、方差、标准差、最大值、最小值等:

import numpy as np
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
b = np.mean(a)
c = np.var(a)
d = np.std(a)
e = np.max(a)
f = np.min(a)
print(b)
print(c)
print(d)
print(e)
print(f)
输出结果为:
5.5
8.25
2.8722813232690143
10
1

4. 数组排序

Numpy数组可以进行排序,可以使用sort()函数进行排序:

import numpy as np
a = np.array([3, 6, 1, 8, 2, 9])
b = np.sort(a)
print(b)
输出结果为:
[1 2 3 6 8 9]