内容:
·基础运算:
·求元素之和:
arr.sum() or np.sum(arr)
·求平均值:
arr.mean() or np.mean(arr)
·求最大、最小值:
arr.max() or np.max(arr)
arr.min() or np.min(arr)
·求最大、最小值的下标索引:
arr.argmax() or np.argmax(arr)
arr.argmin() or np.argmin(arr)
·求标准差和方差:
标准差:arr.std() or np.std(arr)
方差:arr.var() or np.var(arr)
·求中位数:
np.median(arr)
·any和all用法
·广播运算
·矩阵运算
·排序
import numpy as np
【基础运算】
先生成一个含有10个元素的numpy数组:
arr = np.random.randint(0, 20, size=10)
print("arr:\n", arr)
(求元素之和)
# 第一种:求中位数时,不可使用此方法
print("元素之和:", arr.sum())
# 第二种:直接调用numpy库中的sum方法,传入参数为numpy数组,任何情况下都适用
print("元素之和:", np.sum(arr))
运行结果:
(求平均值)
# 求numpy数组中所有元素的平均值:mean()方法
print("元素平均值:", arr.mean())
运行结果:
(求最大、最小值)
# 求numpy数组中元素的最大、最小值:max()方法、min()方法
print(f"元素最大值:{arr.max},元素最小值:{arr.min}")
运行结果:
(求最大、最小值的索引下标)
# 求最大最小元素的下标:
print(f"最大值下标为{arr.argmax()},最小值下标为{arr.argmin()}")
运行结果:
(求标准差和方差)
# 求所有元素的标准差和方差:
print(f"标准差为{arr.std()},{np.std(arr)}方差为{arr.var()}")
运行结果:
(求中位数)
# 注意,求中位数时,不可以”arr.median()“,因为arr并不具备排序方法,所以会报错
print(f"中位数为{np.median(arr)}")
运行结果:
【any和all的用法】
any:检测一个布尔列表BOOL中,是否至少存在一个True。只要存在一个True,则返回True;反之,则返回False
all:检测一个布尔列表BOOL中,是否全为True。全为True时,返回True;反之,则返回False
bool_list = np.array([True, False, True, True, False, False, False])
print(bool_list.any())
print(bool_list.all())
运行结果:
【广播运算】
特点:它本身是一种机制,而不是一种语法原则,会自动进行补维
支持numpy.array和任意一个数运算
一个数可以和一个数组进行运算,运算方式:
将这个数和数组中每个元素进行相应的运算,返回值依旧为一个数组,且为布尔数组
最多使用:一个数组和一个零维数字进行运算
arr = np.random.randint(0, 100, size=8)
return_bool = arr > 50
print(arr, "\n", return_bool)
print(arr[return_bool])
# 查看一个数组中,是否至少存在一个大于70的数
print("数组中至少存在一个大于70的数:", (arr > 70).any())
# 不能广播运算的例子:
m = np.ones(shape=(2, 2))
n = np.ones(shape=(3, 3))
# 此处会报错
print(m + n)
运行结果:
【矩阵运算】
# 矩阵运算
a = np.array([[1, 2], [3, 3]])
b = np.array([[1, 1], [3, 3]])
# 错误示范,此种情况下,会进行对应位置相乘,并不是数学意义中的矩阵运算
print(a * b)
# 正确示范
print(np.dot(a, b))
运行结果:
【排序】
# 排序(了解即可,panda会有更好的排序方式)
data = np.random.randint(0, 100, size=20)
print(data)
# 将生成数,按从小到大的顺序排列
print(np.sort(data))
运行结果: