Numpy中矩阵的基本操作
Numpy
python及numpy的一系列安装环境省略…
numpy的介绍链接:https://numpy.org
直接代码配着注释操作,都是一些非常基础的操作。
更多学习可参考:https://www.runoob.com/numpy/numpy-tutorial.html
一、矩阵的创建
Python提供了list容器,可以当作数组使用。但列表中的元素可以是任何类型数据,因此列表保存的是对象的指针。这就造成,要保存一个简单的列表[1, 2, 3, 4, 5],需要五个指针和五个整数对象。对于数值运算来说,这种结构显然不够高效。Python虽然也提供了array模块,但其只支持一维数组,不支持多维数组,也没有各种运算函数。因而不适合数值运算。NumPy的出现弥补了这些不足,所以NumPy中array的一个特点就是,数组中元素的类型必须一致。
下面就是用NumPy中array()来创建的多维数组:
import numpy as np # 导入numpy包
a = np.array([1, 2, 3]) # 输入一维矩阵,英文单词array意思为:阵列,矩阵的意思。所以方法array(),也就顾名思义了。
print(a) # 输出结果为:[1 2 3]
# 构造二维的矩阵。
b = np.array([[1, 2, 3],
[4, 5, 6]])
print(b)
# 输出如下:
# [[1 2 3]
# [4 5 6]]
# 构造三维矩阵:
c = np.array([[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]])
print(c)
# 输出如下:
# [[[ 1 2 3]
# [ 4 5 6]]
# [[ 7 8 9]
# [10 11 12]]]
总结:一维矩阵一层中括号,二维矩阵两层中括号,三维矩阵三层中括号,继续下去一样,输入几维矩阵就是几层中括号。常用的只是一维和二维。
二、矩阵属性查看及简单应用
1、矩阵属性查看
import numpy as np # 导入numpy包
# 括号中输入一个二维矩阵。
array = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
print(array)
# 输出结果如下:
# [[1 2 3]
# [4 5 6]
# [7 8 9]]
print(array.ndim) # array.ndim查看矩阵的维度。
# 输出结果:2
print(array.shape) # array.shape查看矩阵的形状,返回几行几列的矩阵。
# 输出结果:(3,3)
print(array.size) # array.size查看元素个数。
# 输出结果:9
print(array.dtype) # array.dtype查看矩阵中元素类型。
# 输出结果:int32
注:numpy的这些属性与英语单词或单词缩写的意思都是保持一致的,有一定的英语基础会很容易记这些属性。
2、基本属性应用
import numpy as np # 导入numpy包
# 输入一维矩阵,参数dtype=np.int32定义元素值的类型。
a = np.array([1, 2, 3], dtype=np.int32)
print(a.dtype) # 返回:int32
print(a) # 返回:[1 2 3]
b = np.array([1, 2, 3], dtype=np.float)
print(b.dtype) # 返回:float64
print(b) # 返回:[1. 2. 3.]
# 矩阵b与矩阵a相比较,返回的元素值都加了点,为浮点型数值。
# zeros()返回一个全为零的矩阵,参数(2, 3)表示矩阵规格为2行3列。
zero = np.zeros((2, 3))
print(zero)
# 返回结果:
# [[0. 0. 0.]
# [0. 0. 0.]]
# ones()返回一个全为1的矩阵,参数(2, 4)同样表示矩阵规格,2行4列
one = np.ones((2, 4))
print(one)
# 返回结果如下:
# [[1. 1. 1. 1.]
# [1. 1. 1. 1.]]
# empty()返回一个空矩阵,参数(2, 3)同样表示矩阵规格。
empty = np.empty((2, 3))
print(empty)
# 返回结果:
# [[0. 0. 0.]
# [0. 0. 0.]]
注:与zeros()不同,zeros矩阵中,每个数值都是0。比如:用5除以矩阵中数值会报错的那种。empty()虽然返回矩阵每个数值也都是0,但用一个数除以矩阵中的0不会报错。
3、生成矩阵
两种方式生成ndarray矩阵:
(1)numpy.arange(start, stop, step, dtype = None)
参数:
- start 开始位置,数字,可选项,默认起始值为0。
- stop 停止位置,数字。
- step 步长,数字,可选项, 默认步长为1,如果指定了step,则还必须给出start。
- dtype 输出数组的类型。 如果未给出dtype,则从其他输入参数推断数据类型。
numpy中的arange()属性与python中的range()很像,具体如下:
import numpy as np # 导入num