设为首页 加入收藏

TOP

Python:numpy模块最详细的教程(三)
2023-07-25 21:28:51 】 浏览:88
Tags:Python numpy
素取指数函数,exex
np.sqrt(arr) 对numpy数组arr中每个元素开根号x??√x

一元函数:abs, sqrt, exp, log, ceil, floor, rint, trunc, modf, isnan, isinf, cos, sin, tan

二元函数:add, substract, multiply, divide, power, mod, maximum, mininum

arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
print(arr)
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

#1. 对numpy数组的所有元素取正弦
print(np.sin(arr))

[[ 0.84147098  0.90929743  0.14112001 -0.7568025 ]
 [-0.95892427 -0.2794155   0.6569866   0.98935825]
 [ 0.41211849 -0.54402111 -0.99999021 -0.53657292]]

#2. 对numpy数组的所有元素开根号
print(np.sqrt(arr))

[[1.         1.41421356 1.73205081 2.        ]
 [2.23606798 2.44948974 2.64575131 2.82842712]
 [3.         3.16227766 3.31662479 3.46410162]]

#3. 对numpy数组的所有元素取反正弦,如果元素不在定义域内,则会取nan值
print(np.arcsin(arr * 0.1))
[[0.10016742 0.20135792 0.30469265 0.41151685]
 [0.52359878 0.64350111 0.7753975  0.92729522]
 [1.11976951 1.57079633        nan        nan]]

** /Applications/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py:2: RuntimeWarning: invalid value encountered in arcsin
  
#4. 判断矩阵元素中是否含有np.nan值
print(np.isnan(arr))
# [[False False False]
# [False False False]]

十二、numpy数组矩阵化

1 numpy数组的转置

numpy数组的转置,相当于numpy数组的行和列互换。

arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
[[1 2 3]
 [4 5 6]]

print(arr.transpose())
[[1 4]
 [2 5]
 [3 6]]

print(arr.T)
[[1 4]
 [2 5]
 [3 6]]

2 numpy数组的逆

numpy数组行和列相同时,numpy数组才可逆。

arr = np.array([[1, 2, 3], [4, 5, 6], [9, 8, 9]])
print(arr)
[[1 2 3]
 [4 5 6]
 [9 8 9]]

print(np.linalg.inv(arr))
[[ 0.5        -1.          0.5       ]
 [-3.          3.         -1.        ]
 [ 2.16666667 -1.66666667  0.5       ]]

# 单位numpy数组的逆是单位numpy数组本身
arr = np.eye(3)
print(arr)
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

print(np.linalg.inv(arr))
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

十三、numpy数组数学和统计方法

方法 详解
sum 求和
cumsum 累加求和
mean 求平均数
std 求标准差
var 求方差
min 求最小值
max 求最大值
argmin 求最小值索引
argmax 求最大值索引
sort 排序

1 最大最小值

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
#1. 获取numpy数组所有元素中的最大值
print(arr.max())
# 9
# Python学习交流群:711312441
#2. 获取numpy数组所有元素中的最小值
print(arr.min())
# 1

#3. 获取举着每一行的最大值
print(arr.max(axis=0))
# [7 8 9]

#4. 获取numpy数组每一列的最大值
print(arr.max(axis=1))
# [3 6 9]

#5. 获取numpy数组最大元素的索引位置
print(arr.argmax(axis=1))
# [2 2 2]

2 平均值

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr)
[[1 2 3]
 [4 5 6]
 [7 8 9]]

#1. 获取numpy数组所有元素的平均值
print(arr.mean())
# 5.0

#2. 获取numpy数组每一列的平均值
print(arr.mean(axis=0))
# [4. 5. 6.]

#3. 获取numpy数组每一行的平均值
print(arr.mean(axis=1))
# [2. 5. 8.]

3 方差

方差公式为

mean(|x?x.mean()|2)mean(|x?x.mean()|2)

其中x为numpy数组。

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr)
[[1 2 3]
 [4 5 6]
 [7 8 9]]

#1. 获取numpy数组所有元素的方差
print(arr.var())
# 6.666666666666667

#2. 获取numpy数组每一列的元素的方差
print(arr.var(axis=0))
# [6. 6. 6.]

#3. 获取numpy数组每一行的元素的方差
print(arr.var(axis=1))
# [0.66666667 0.66666667 0.66666667]

4 标准差

标准差公式为

mean|x?x.mean()|2?????????????????√=x.var()??????√mean|x?x.mean()|2=x.var()

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr)
[[1 2 3]
 [4 5 6]
 [7 8 9]]
# Python学习交流群:711312441
#1. 获取numpy数组所有元素的标准差
print(arr.std())
# 2.581988897471611

#2. 获取numpy数组每一列的标准差
print(arr.std(axis=0))
# [2.44948974 2.44948974 2.44948974]

#3. 获取numpy数组每一行的标准差
print(arr.std(axis=1))
[0.81649658 0.81649658 0.81649658]

5 中位数

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a
首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇可迭代对象以及迭代器的说明 下一篇我用Python做了个动图生成器,把..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目