numpy学习笔记
一、安装环境:
pip3 install numpy
pip install pandas
numpy主要处理矩阵和数组
二、Numpy创建array基本操作
简单示例:
import numpy as np
array = np.array([
[1, 2, 3],
[4, 5, 6]
])
a0 = np.zeros((3, 4), dtype=np.int64) 生成全为0的数组
a1 = np.ones((3, 4), dtype=np.int64) 生成全为1的数组
aSort = np.arange(0, 12).reshape((3, 4)) 生成内容为0~12,2行3列的矩阵
aLine = np.linspace(1, 10, 6).reshape(2, 3) 生成1~10之间6段线段,并转化成2行3列的矩阵
print(a0)
print(a1)
print(aSort)
print(aLine)
print(array)
print('number of dim:', array.ndim) 矩阵维度
print('shape of dim:', array.shape) 矩阵形状
print('size of dim:', array.size) 矩阵大小
print('type:', array.dtype) 矩阵元素类型
输出结果:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[ 1. 2.8 4.6]
[ 6.4 8.2 10. ]]
[[1 2 3]
[4 5 6]]
number of dim: 2
shape of dim: (2, 3)
size of dim: 6
type: int64
三、基本运算操作:
1、数组减法
每个元素相减
import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
c = a - b 矩阵的减法运算
print(c)
输出结果:
[10 20 30 40] [0 1 2 3]
[10 19 28 37]
2、数组加法
每个元素相加
import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
c = a + b
print(c)
输出结果:
[10 20 30 40] [0 1 2 3]
[10 21 32 43]
3、数组乘法
每个元素相乘
import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
c = a * b
print(c)
输出结果:
[10 20 30 40] [0 1 2 3]
[ 0 20 60 120]
4、数组乘方
每个元素乘方
import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
c = b ** 2
print(c)
输出结果:
[10 20 30 40] [0 1 2 3]
[0 1 4 9]
5、三角函数运算
import numpy as np
a = np.array([10, 20, 30, 40])
b = np.arange(4)
print(a, b)
c = 10 * np.sin(a) 正弦运算(余弦运算,正切运算同理可得)
print(c)
输出结果:
[10 20 30 40] [0 1 2 3]
[-5.44021111 9.12945251 -9.88031624 7.4511316 ]
6、矩阵点积运算
a = np.array([[1, 1],
[0, 1]])
b = np.arange(4).reshape(2, 2)
print(a)
print(b)
c_dot = np.dot(a, b)
print(c_dot)
输出结果:
[[1 1]
[0 1]]
[[0 1]
[2 3]]
[[2 4]
[2 3]]
7、求和,求最值运算
import numpy as np
a = np.random.random((2, 4))
print(a)
print(np.sum(a, axis=1)) #axis=1在每一行进行求和运算
print(np.max(a, axis=0)) #axis=0在每一列中求最大值
print(np.min(a))
输出结果:
[[0.01178302 0.74228551 0.95279139 0.33176999]
[0.03857885 0.02307555 0.509306 0.45963771]]
[2.03862991 1.03059811]
[0.03857885 0.74228551 0.95279139 0.45963771]
0.011783015115755968
8、常见的矩阵计算操作
import numpy as np
a = np.arange(14, 2, -1).reshape((3, 4))
print(a)
print(np.argmin(a)) #最小值的索引
print(np.argmax(a)) #最大值的索引
print(np.mean(a)) #求矩阵元素的平均值mean和average均可实现
print(np.median(a)) #求中位数
print(np.cumsum(a)) #逐步累加形成数组
print(np.diff(a)) #逐步累减形成数组
print(np.nonzero(a)) #输出非0值的行数和列数,分为两个数组输出
print(np.sort(a)) #排序
print(np.transpose(a)) #矩阵的反向
print(np.clip(a, 5, 9)) #截取矩阵中小于5的数则设置成为5,大于9的数则设置成9
输出结果:
[[14 13 12 11]
[10 9 8 7]
[ 6 5 4 3]]
11
0
8.5
8.5
[ 14 27 39 50 60 69 77 84 90 95 99 102]
[[-1 -1 -1]
[-1 -1 -1]
[-1 -1 -1]]
(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))
[[11 12 13 14]
[ 7 8 9 10]
[ 3 4 5 6]]
[[14 10 6]
[13 9 5]
[12 8 4]
[11 7 3]]
[[9 9 9 9]
[9 9 8 7]
[6 5 5 5]]
9、根据索引求值
import numpy as np
a = np.arange(3, 15)
print(a)
print(a[3]) #根据索引查找值
b = np.arange(3, 15).reshape(3, 4)
print(b)
print(b[2][1]) #根据索引查找值
print(b[:, 1]) #根据索引查找值,:表示所有的值,所有行或者所有列
for row in b:
print(row) #迭代行
for col in b.T:
print(col) #迭代列
for item in b.flatten():
print(item) #迭代矩阵的项
输出结果:
[ 3 4 5 6 7 8 9 10 11 12 13 14]
6
[[ 3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]]
12
[ 4 8 12]
[3 4 5 6]
[ 7 8 9 10]
[11 12 13 14]
[ 3 7 11]
[ 4 8 12]
[ 5 9 13]
[ 6 10 14]
3
4
5
6
7
8
9
10
11
12
13
14
10、矩阵合并
import numpy as np
a = np.array([1, 1, 1])
b = np.array([2, 2, 2])
c0 = np.vstack((a, b)) #上下合并矩阵
c1 = np.hstack((a, b)) #左右合并矩阵
print(c0)
print(c1)
print(a[np.newaxis, :]) #在行上加一个维度
输出结果:
[[1 1 1]
[2 2 2]]
[1 1 1 2 2 2]
[[1 1 1]]
11、矩阵分割
import numpy as np
a = np.arange(12).reshape((3, 4))
print(a)
print(np.split(a, 2, axis=1)) #按列分割成两块
print(np.split(a, 3, axis=0)) #按行分割成三块
print(np.array_split(a, 3, axis=1)) #不等项分割
print(np.vsplit(a, 3)) #纵向分割
print(np.hsplit(a, 2)) #横向分割
输出结果:
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2, 3],
[ 6, 7],
[10, 11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
[array([[0, 1],
[4, 5],
[8, 9]]), array([[ 2],
[ 6],
[10]]), array([[ 3],
[ 7],
[11]])]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8, 9, 10, 11]])]
以上均为自己初学的学习笔记,主要是numpy操作数组矩阵的一些基本的操作,包括一些自带函数的实现以及实现的输出结果。大家如果觉得对自己有帮助的话,可以点赞关注,收藏文章噢!!!