数组与标量之间的运算
数组与标量之间的运算作用于数组的每一个元素
#使用arange和reshape形成一个元素由0到23逐一递增的(2,3,4)维数组
a = np.arange(24).reshape((2,3,4))
a
#输出:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
#通过a.mean()获取它的平均值,a的平均值指的是a中所有元素的算术平均值
a.mean()
#输出:11.5
#计算a与平均值的商,11.5已经是一个标量值,a本身确实是一个数组,将数组与标量值进行运算,
#运算后的结果再复制给a,此时a由整数变成了预算后的浮点数。那么这浮点数就是a中的原来的每一个元素与标
#量逐一运算之后形成的
a=a/a.mean()
a
#输出
array([[[0. , 0.08695652, 0.17391304, 0.26086957],
[0.34782609, 0.43478261, 0.52173913, 0.60869565],
[0.69565217, 0.7826087 , 0.86956522, 0.95652174]],
[[1.04347826, 1.13043478, 1.2173913 , 1.30434783],
[1.39130435, 1.47826087, 1.56521739, 1.65217391],
[1.73913043, 1.82608696, 1.91304348, 2. ]]])
NumPy一元函数:对ndarray中的数据执行元素级运算的函数
#使用arange和reshape形成一个元素由0到23逐一递增的(2,3,4)维数组
a = np.arange(24).reshape((2,3,4))
#平方数组中的每一个值
np.square(a)
#输出:array([[[ 0, 1, 4, 9],
[ 16, 25, 36, 49],
[ 64, 81, 100, 121]],
[[144, 169, 196, 225],
[256, 289, 324, 361],
[400, 441, 484, 529]]])
#对数组开平方,sqrt(a)括号里的a数组还是没平方之前的数组,
#因为 np.square(a)语句并没有给a赋值
a=np.sqrt(a)
a
#输出
array([[[0. , 1. , 1.41421356, 1.73205081],
[2. , 2.23606798, 2.44948974, 2.64575131],
[2.82842712, 3. , 3.16227766, 3.31662479]],
[[3.46410162, 3.60555128, 3.74165739, 3.87298335],
[4. , 4.12310563, 4.24264069, 4.35889894],
[4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
np.modf(a)#将数组各元素的小数和整数部分以两个独立数组形式返回
#输出
(array([[[0. , 0. , 0.41421356, 0.73205081],
[0. , 0.23606798, 0.44948974, 0.64575131],
[0.82842712, 0. , 0.16227766, 0.31662479]],
[[0.46410162, 0.60555128, 0.74165739, 0.87298335],
[0. , 0.12310563, 0.24264069, 0.35889894],
[0.47213595, 0.58257569, 0.69041576, 0.79583152]]]),
array([[[0., 1., 1., 1.],
[2., 2., 2., 2.],
[2., 3., 3., 3.]],
NumPy二元函数:NumPy的设计理念是希望大家可以把数组当成一个元素来对待
#使用arange和reshape形成一个元素由0到23逐一递增的(2,3,4)维数组
a = np.arange(24).reshape((2,3,4))
b=np.sqrt(a)
a
#输出:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
b
#输出:
array([[[0. , 1. , 1.41421356, 1.73205081],
[2. , 2.23606798, 2.44948974, 2.64575131],
[2.82842712, 3. , 3.16227766, 3.31662479]],
[[3.46410162, 3.60555128, 3.74165739, 3.87298335],
[4. , 4.12310563, 4.24264069, 4.35889894],
[4.47213595, 4.58257569, 4.69041576, 4.79583152]]])
np.maximum(a,b)#此时不管最大数是谁,返回的都是浮点数
#输出:
array([[[ 0., 1., 2., 3.],
[ 4., 5., 6., 7.],
[ 8., 9., 10., 11.]],
[[12., 13., 14., 15.],
[16., 17., 18., 19.],
[20., 21., 22., 23.]]])
a>b#判断a,b大小,返回布尔值
#输出:
array([[[False, False, True, True],
[ True, True, True, True],
[ True, True, True, True]],
[[ True, True, True, True],
[ True, True, True, True],
[ True, True, True, True]]])
?
|