python+numpy的基本操作

NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

1.numpy的导入

Numpy是一个第三方库,所以我们需要在python中导入,直接用import numpy就可以导入。
我们可以使用import numpy as np 来用 np 作为别名

2.创建指定值的数组

方法:np.array()

具体使用:

import numpy as np
# 创建一个数组
a = np.array([1,2,3])
print(a)

运行结果:(np的数组没有用逗号,分隔,而是用的空格来分隔)

[1 2 3]

创建多维数组

import numpy as np
#创建一个二维数组
a1 = np.array([[1,2,3],[4,5,6]])
#创建一个三维数组
a2 = np.array([[1,2,3],[4,5,6],[7,8,9]])
print(a1)
print(a2)
[[1 2 3]
 [4 5 6]]

[[1 2 3]
 [4 5 6]
 [7 8 9]]

3.数组操作

两个数组相加

import numpy as np
# 创建一个数组
a1 = np.array([1,2,3])
a2 = np.array([4,5,6])
print(a1+a2)
[5 7 9]

数组相乘一个数

import numpy as np

a1 = np.array([1,2,3])
print(a1*2)
[2 4 6]

获得数组的n次方

import numpy as np

a1 = np.array([1,2,3])
print(a1**3)
[ 1 8 27]

4.数组元素值获取

获取多维数组的值:

获取第一行的值,第一行第一列的值

import numpy as np

#创建一个三维数组
a1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
#打印第一行的值
print(a1[0])
#打印第一行第一列的值
print(a1[0][0])
[1 2 3]
1

查看数组是几行几列:

方法: shape

import numpy as np

#创建一个三维数组
a1 = np.array([[1,2,3],[4,5,6],[7,8,9]])
#获得行和列的值
print(a1.shape)
(3, 3)

获取数组的最小值和最大值:

最小值:min()

最大值:max()

import numpy as np

#创建一个三维数组
a = np.array([[1,2,3],[4,5,6],[7,8,9]])
#获取最小值
print(a.min())
#获取最大值
print(a.max())
1
9

其他补充:
a.T  —— 矩阵转置
a.shape —— 数据有几行几列 (3, 3)
a.dtype —— 数组内的数据类型 int32
a.ndim 维度 —— 2
a.size元素个数 —— 9
a.itemsize 每个元素的长度 —— 4
a.nbytes 数组所有元素长度 —— 36 

5.创建特殊数组方法

5.1生成一个指定类型的数组

import numpy as np

#从0开始生成5个数作为数组元素,默认步长为1
a1 = np.arange(5)
print(a1)
[0 1 2 3 4]

可以指定开始数组开始的值和步长

import numpy as np
#从2开始,步长为2,生成小于10的数作为数组的元素
v = np.arange(2,10,2)
print(v)
[2 4 6 8]

5.2生成一个指定结构的所有元素都为0的数组

方法:zeros()

import numpy as np

#生成一个3x3的元素为0的数组
m = np.zeros((3,3),dtype=np.int32)#
print(m)
[[0 0 0]
 [0 0 0]
 [0 0 0]]

5.3生成一个指定结构的所有元素都为1的数组

方法:ones()

import numpy as np
#生成一个3x3的元素为1的数组
m = np.ones((3,3),dtype=np.int32)
print(m)
[[1 1 1]
 [1 1 1]
 [1 1 1]]

5.4生成一个元素随机数字的指定结构的数组

import numpy as np
#随机生成一个3x3的矩阵
m = np.random.random((3,3))
print(m)
[[0.42283499 0.6434965  0.53449619]
 [0.22793167 0.2804948  0.6261363 ]
 [0.00640404 0.48855814 0.7875288 ]]

5.5生成一个数组,元素为等间隔的值

方法:np.linspace(范围开始,范围结束,平均取多少个数)

import numpy as np

a = np.linspace(0,10,9)
print(a)
[ 0.    1.25  2.5   3.75  5.    6.25  7.5   8.75 10.  ]

补充:矩阵和数组的区别:

1.维度方面:数组可以是多维的,矩阵只能是二维的

2.元素类型方面:数组的元素可以是字符串,数字等,矩阵的值只能是数字

所以:

在python中创建数组需要先创建一个列表,np.array() 方法是转换为数组。转换为矩阵需要使用np.mat()方法,若要将数组或者矩阵转换成列表,则需要使用tolist()方法

具体实现:

import numpy as np
# 将列表转换为数组
a = np.array([[1,2,3],[4,5,6]])
print(a)
# 将数组转换为矩阵
b =np.mat(a)
print(b)
# 将矩阵转换成列表
c = b.tolist()
print(c)
[[1 2 3]
 [4 5 6]]

[[1 2 3]
 [4 5 6]]

[[1, 2, 3], [4, 5, 6]]

你可能感兴趣的:(计算机视觉,python基础,python,矩阵,线性代数)