随着大数据时代和人工智能的快速发展,数据处理和分析成为了数据科学家和程序员们的日常工作之一。在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]