Python科学计算-Numpy和Pandas学习笔记(二)-Numpy的基本运算(chaochao`s Blog)

1 前言

本章介绍numpy的基本运算。

2 Numpy的基本运算

numpy的基本运算是对矩阵中每个元素进行相应的运算。

2.1 加减乘除

加、减、乘、除。

import numpy as np
array1 = np.array([1, 2, 3, 4])
array2 = np.arange(5, 9)
print('array1:\n', array1)
print('array2:\n', array2)
# 加法就是对应元素分别相加
add = array1 + array2
print('add:\n', add)
# 减法就是对应元素分别相减
sub = array1 - array2
print('sub:\n', sub)
# 乘法就是对应元素分别相乘
mul = array1 * array2
print('mul:\n', mul)
# 除法就是对应元素分别相除
dev = array1 / array2
print('dev:\n', dev)

运算结果:

array1:
 [1 2 3 4]
array2:
 [5 6 7 8]
add:
 [ 6  8 10 12]
sub:
 [-4 -4 -4 -4]
mul:
 [ 5 12 21 32]
dev:
 [0.2        0.33333333 0.42857143 0.5       ]

2.2 三角运算

平方运算、三角函数运算。

# 次方运算 矩阵中每个元素分别次方
pow = array1 ** 2
print('pow:\n', pow)
# sin(x) 矩阵中每个元素分别进行sin运算 cos tan同理
sin = np.sin(array1)
print('sin:\n', sin)
# cos(x) 矩阵中每个元素分别进行cos运算 并且乘10
cos = np.cos(array1) * 10
print('cos:\n', cos)
# 判断矩阵中的数的大小 < 可以换位>, == >= 等其他符号
min = print(array1 < 3)

运算结果:

pow:
 [ 1  4  9 16]
sin:
 [ 0.84147098  0.90929743  0.14112001 -0.7568025 ]
cos:
 [ 5.40302306 -4.16146837 -9.89992497 -6.53643621]
[ True  True False False]

2.3 矩阵的乘法

numpy中定义了矩阵的乘法方法np.dot(a, b)函数。

# 将1行4列的矩阵array1和array2变为2行2列
array1 = array1.reshape((2, 2))
array2 = array2.reshape((2, 2))
print('array1:\n', array1)
print('array2:\n', array2)
# 普通的乘法
print('mlt:\n', array1 * array2)
# 使用矩阵的乘法
mlt_dot = np.dot(array1, array2)
print('mlt_dot:\n', mlt_dot)
# 第二种使用方法
mlt_dot2 = array1.dot(array2)
print('mlt_dot2:\n', mlt_dot2)

运行结果:

array1:
 [[1 2]
 [3 4]]
array2:
 [[5 6]
 [7 8]]
mlt:
 [[ 5 12]
 [21 32]]
mlt_dot:
 [[19 22]
 [43 50]]
mlt_dot2:
 [[19 22]
 [43 50]]

2.4 常用方法

随机生成矩阵、求最大值、最小值、最小值索引、平均值、求和、中位数、累加、排序、转置、设置阈值,选取维度axis=0表示在列中求取,axis=1表示在行中求取。

# 随机生成一个矩阵 (2, 3)列 0-1之间
array3 = np.random.random((2, 3))
print('array3:\n', array3)
# 求矩阵中的最大值
print('求矩阵中的最大值:\n', np.max(array3))
# 求矩阵中每行的最大值 axis=1:行 axis=0:列
print('求矩阵中每行的最大值:\n', np.max(array3, axis=1))
# 求矩阵中每列的最小值
print('求矩阵中每列的最小值:\n', np.min(array3, axis=0))
# 求矩阵中最小值的索引
print('求矩阵中最小值的索引:\n', np.argmin(array3))
# 求矩阵中的平均值 average 和 mean 都可以
print('求矩阵中的平均值average:\n', np.average(array3))
print('求矩阵中的平均值mean:\n', np.mean(array3))
# 求矩阵中每行的和
print('求矩阵中每行的和:\n', np.sum(array3, axis=1))
# 求矩阵中的中位数
print('求矩阵中的中位数:\n', np.median(array3, axis=1))
# 求矩阵中的每个元素依次累加前面的元素并放置到原位
print('求矩阵中的每个元素依次累加前面的元素并放置到原位:\n', np.cumsum(array3))
# 对矩阵中的数据进行排序
print('对矩阵中的数据进行排序:\n', np.sort(array3))
# 矩阵的反向 也就是转置 行列互换
print('矩阵的反向:\n', np.transpose(array3))
# 设置矩阵的阈值 clip(array, min, max) 小于min的全部设为min 大于max的全部设为max
print('设置矩阵的阈值:\n', np.clip(array3, 0.2, 0.7))

运算结果:

array3:
 [[0.61272512 0.19098376 0.16443536]
 [0.99538564 0.88858532 0.61076093]]
求矩阵中的最大值:
 0.9953856391861858
求矩阵中每行的最大值:
 [0.61272512 0.99538564]
求矩阵中每列的最小值:
 [0.61272512 0.19098376 0.16443536]
求矩阵中最小值的索引:
 2
求矩阵中的平均值average:
 0.5771460203496471
求矩阵中的平均值mean:
 0.5771460203496471
求矩阵中每行的和:
 [0.96814424 2.49473188]
求矩阵中的中位数:
 [0.19098376 0.88858532]
求矩阵中的每个元素依次累加前面的元素并放置到原位:
 [0.61272512 0.80370888 0.96814424 1.96352988 2.85211519 3.46287612]
对矩阵中的数据进行排序:
 [[0.16443536 0.19098376 0.61272512]
 [0.61076093 0.88858532 0.99538564]]
矩阵的反向:
 [[0.61272512 0.99538564]
 [0.19098376 0.88858532]
 [0.16443536 0.61076093]]
设置矩阵的阈值:
 [[0.61272512 0.2        0.2       ]
 [0.7        0.7        0.61076093]]

3 结语

numpy的常用方法还有很多,详细可查询:Numpy菜鸟教程

你可能感兴趣的:(机器学习,python,numpy,机器学习,数据分析,javac)