📅  最后修改于: 2023-12-03 15:33:15.076000             🧑  作者: Mango
NumPy是一个基于Python的科学计算库,它可以理解为Python中的Matlab。NumPy提供了一个高性能的多维数组对象,以及一系列操作多维数组的函数。在NumPy中,维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。
在Python中使用NumPy,需要先安装该库。可以使用以下命令安装NumPy:
pip install numpy
在NumPy中,可以使用多种方式来创建数组,以下是一些常用的方式:
可以使用numpy.array
函数从Python列表、元组等数据结构来创建NumPy数组:
import numpy as np
a = np.array([1, 2, 3])
print(a)
输出结果为:
[1 2 3]
NumPy提供了一些函数来创建特定形状的数组,例如使用numpy.zeros
函数可以创建一个全是0的数组:
import numpy as np
a = np.zeros((3, 4))
print(a)
输出结果为:
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
可以使用numpy.loadtxt
函数从文件中读取数据并创建NumPy数组:
import numpy as np
data = np.loadtxt('data.txt')
print(data)
可以使用numpy.random
模块随机生成NumPy数组:
import numpy as np
# 生成随机整数数组
a = np.random.randint(low=0, high=10, size=(3, 4))
print(a)
# 生成随机浮点数数组
b = np.random.rand(3, 4)
print(b)
在创建NumPy数组后,可以使用数组的属性来了解数组的维度、形状、大小等信息。
可以使用numpy.shape
属性来获取数组的形状:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.shape)
输出结果为:
(2, 3)
可以使用numpy.ndim
属性来获取数组的秩:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a.ndim)
输出结果为:
2
可以使用numpy.dtype
属性来获取数组的元素类型:
import numpy as np
a = np.array([1, 2, 3])
print(a.dtype)
输出结果为:
int64
可以使用下标来访问数组中的元素:
import numpy as np
a = np.array([1, 2, 3])
print(a[0]) # 访问第一个元素
输出结果为:
1
对于多维数组,可以使用逗号分隔的下标来访问元素:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
print(a[0, 0]) # 访问第一个元素
输出结果为:
1
可以通过切片来访问数组的元素子集:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a[1:3]) # 访问第2到第3个元素
输出结果为:
[2 3]
对于多维数组,可以使用逗号分隔的切片来访问元素子集:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a[1:3, 1:3]) # 访问第2到第3行和第2到第3列元素子集
输出结果为:
[[5 6]
[8 9]]
可以对数组进行加、减、乘、除等运算:
import numpy as np
# 加法
a = np.array([1, 2, 3])
print(a + 2)
# 乘法
b = np.array([4, 5, 6])
print(a * b)
# 平方
print(np.square(a))
可以对数组进行逻辑运算:
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 大于符号(相当于元素级别的逻辑运算)
print(a > 1)
# 与运算
print(np.logical_and(a > 1, b < 6))
# 或运算
print(np.logical_or(a > 1, b < 6))
本教程了解了NumPy的基础知识,包括数组的创建、属性、索引和切片、运算等。NumPy是高性能计算的重要工具,对于处理大规模数据具有很大的优势,希望本教程对于想要使用NumPy的程序员有所帮助。