📜  NumPy教程(1)

📅  最后修改于: 2023-12-03 15:33:15.076000             🧑  作者: Mango

NumPy教程

NumPy是一个基于Python的科学计算库,它可以理解为Python中的Matlab。NumPy提供了一个高性能的多维数组对象,以及一系列操作多维数组的函数。在NumPy中,维度(dimensions)叫做轴(axes),轴的个数叫做秩(rank)。

安装NumPy

在Python中使用NumPy,需要先安装该库。可以使用以下命令安装NumPy:

pip install numpy
数组的创建

在NumPy中,可以使用多种方式来创建数组,以下是一些常用的方式:

从Python数组创建NumPy数组

可以使用numpy.array函数从Python列表、元组等数据结构来创建NumPy数组:

import numpy as np

a = np.array([1, 2, 3])
print(a)

输出结果为:

[1 2 3]
使用NumPy函数创建NumPy数组

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数组

可以使用numpy.loadtxt函数从文件中读取数据并创建NumPy数组:

import numpy as np

data = np.loadtxt('data.txt')
print(data)
随机生成NumPy数组

可以使用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的程序员有所帮助。