Numpy入门[5]——数组方法

Numpy入门[5]——数组方法

参考:

https://ailearning.apachecn.org/

使用Jupyter进行练习

import numpy as np
import matplotlib.pyplot as plt

求和

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

求所有元素的和

np.sum(a)
21

指定求和的维度:

# 沿着第一维求和:列求和
np.sum(a, axis=0)
array([5, 7, 9])
# 沿着第二维求和:行求和
np.sum(a, axis=1)
array([ 6, 15])
# 沿着最后一维求和
np.sum(a, axis=-1)
array([ 6, 15])

或者使用sum方法

print(a.sum())
print(a.sum(axis=0))
print(a.sum(axis=1))
print(a.sum(axis=-1))
21
[5 7 9]
[ 6 15]
[ 6 15]

求积

求所有元素的乘积:

a.prod()
720

或者使用函数形式:

np.prod(a, axis=0)
array([ 4, 10, 18])

求最大值最小值

from numpy.random import rand
a = rand(3,4)
%precision 3
a
array([[0.78 , 0.82 , 0.194, 0.361],
       [0.111, 0.97 , 0.328, 0.217],
       [0.208, 0.279, 0.374, 0.414]])

全局最小:

a.min()
0.111

沿着某个轴最小:

a.min(axis=0)
array([0.111, 0.279, 0.194, 0.217])
a.min(axis=1)
array([0.194, 0.111, 0.208])

最大值同理,将min换成max即可

print(a.max())
print(a.max(axis=0))
print(a.max(axis=1))
0.9701699305104046
[0.78  0.97  0.374 0.414]
[0.82  0.97  0.414]

最大值最小值的位置

使用argminargmin方法

print(a.argmin())
print(a.argmin(axis=0))
print(a.argmin(axis=1))
print(a.argmax())
print(a.argmax(axis=0))
print(a.argmax(axis=1))
4
[1 2 0 1]
[2 0 0]
5
[0 1 2 2]
[1 1 3]

均值

可以使用mean方法

a = np.array([[1,2,3],
             [4,5,6]])
print(a.mean())
print(a.mean(axis=0))
print(a.mean(axis=1))
3.5
[2.5 3.5 4.5]
[2. 5.]

也可以使用mean函数

np.mean(a)
3.500

还可以使用average函数:

np.average(a,axis=0)
array([2.5, 3.5, 4.5])

average函数还支持加权平均:

np.average(a, axis=0, weights=[1,2])
array([3., 4., 5.])

方差与标准差

std方法计算标准差:

a.std(axis=1)
array([0.816, 0.816])

var计算方差:

a.var(axis=1)
array([0.667, 0.667])

或者使用函数形式:

print(np.std(a, axis=1))
print(np.var(a, axis=1))
[0.816 0.816]
[0.667 0.667]

clip方法

将数值限制在某个范围

print(a)
# 小于3的变成3,大于5的变成5
a.clip(3,5)
[[1 2 3]
 [4 5 6]]





array([[3, 3, 3],
       [4, 5, 5]])

ptp方法

计算最大值和最小值之差

a.ptp(axis=1)
array([2, 2])
a.ptp()
5

round方法

近似,默认到整数

a = np.array([1.35, 2.5, 1.5])
a.round()
array([1., 2., 2.])

近似到一位小数:

a.round(decimals=1)
array([1.4, 2.5, 1.5])

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