对秩为1的两个ndarray进行加减乘除
import numpy as np
# 创建2个秩为1的ndarray
x = np.array([1,2,3,4])
y = np.array([5.1,6.1,7.1,8.1])
# 打印x
print('x = ', x)
# 打印y
print('y = ', y)
# 通过两种不同的方式,对x和y进行加减乘除
print('x + y = ', x + y)
print('add(x,y) = ', np.add(x,y))
print()
print('x - y = ', x - y)
print('subtract(x,y) = ', np.subtract(x,y))
print()
print('x * y = ', x * y)
print('multiply(x,y) = ', np.multiply(x,y))
print()
print('x / y = ', x / y)
print('divide(x,y) = ', np.divide(x,y))
输出:
x = [1 2 3 4]
y = [5.1 6.1 7.1 8.1]
x + y = [ 6.1 8.1 10.1 12.1]
add(x,y) = [ 6.1 8.1 10.1 12.1]
x - y = [-4.1 -4.1 -4.1 -4.1]
subtract(x,y) = [-4.1 -4.1 -4.1 -4.1]
x * y = [ 5.1 12.2 21.3 32.4]
multiply(x,y) = [ 5.1 12.2 21.3 32.4]
x / y = [0.19607843 0.32786885 0.42253521 0.49382716]
divide(x,y) = [0.19607843 0.32786885 0.42253521 0.49382716]
对秩为1的两个ndarray进行加减乘除
前提条件: ndarray 的形状必须一样或者可广播
import numpy as np
# 创建2个秩为2的相同形状的ndarray
X = np.array([1,2,3,4]).reshape(2,2)
Y = np.array([5.5,6.5,7.5,8.5]).reshape(2,2)
# 打印 X
print('X = \n', X)
# 打印 Y
print('Y = \n', Y)
print()
# 进行加减乘除并输出
print('X + Y = \n', X + Y)
print('add(X,Y) = \n', np.add(X,Y))
print()
print('X - Y = \n', X - Y)
print('subtract(X,Y) = \n', np.subtract(X,Y))
print()
print('X * Y = \n', X * Y)
print('multiply(X,Y) = \n', np.multiply(X,Y))
print()
print('X / Y = \n', X / Y)
print('divide(X,Y) = \n', np.divide(X,Y))
输出:
X =
[[1 2]
[3 4]]
Y =
[[5.5 6.5]
[7.5 8.5]]
X + Y =
[[ 6.5 8.5]
[10.5 12.5]]
add(X,Y) =
[[ 6.5 8.5]
[10.5 12.5]]
X - Y =
[[-4.5 -4.5]
[-4.5 -4.5]]
subtract(X,Y) =
[[-4.5 -4.5]
[-4.5 -4.5]]
X * Y =
[[ 5.5 13. ]
[22.5 34. ]]
multiply(X,Y) =
[[ 5.5 13. ]
[22.5 34. ]]
X / Y =
[[0.18181818 0.30769231]
[0.4 0.47058824]]
divide(X,Y) =
[[0.18181818 0.30769231]
[0.4 0.47058824]]
使用数学函数操作ndarray示例:
import numpy as np
# 创建秩为1的ndarray
x = np.array([1,2,3,4])
# 打印x
print('x = ', x)
print()
# 以e为底的指数
print('EXP(x) =', np.exp(x))
print()
# 计算平方根
print('SQRT(x) =',np.sqrt(x))
print()
# 计算 平方
print('POW(x,2) =',np.power(x,2))
使用统计学函数操作ndarray示例:
import numpy as np
# 创建一个秩为2的ndarray
X = np.array([[1,2], [3,4]])
# 打印X
print()
print('X = \n', X)
print()
# 使用mean计算X中所有元素中的平均数
print('计算在X中所有元素的平均数:', X.mean())
# 使用mean,外加axis参数计算X中列或行的平均数
print('X的所有列中所有元素的平均值:', X.mean(axis=0))
print('X中所有行中所有元素的平均值:', X.mean(axis=1))
print()
# 使用mean,外加axis参数计算X中列或行的总数
print('计算X中所有元素的总和', X.sum())
print('计算X中所有列中元素的总和:', X.sum(axis=0))
print('计算X中所有行中元素的总和:', X.sum(axis=1))
print()
# 标准差
print('计算X中所有元素的标准差:', X.std())
print('计算X中所有列中元素的标准差:', X.std(axis=0))
print('计算X中所有行中元素的标准差:', X.std(axis=1))
print()
print('计算X中所有元素的中位数:', np.median(X))
print('计算X中所有列上元素的中位数:', np.median(X,axis=0))
print('计算X中所有行上元素的中位数:', np.median(X,axis=1))
print()
print('计算X中所有元素的最大值:', X.max())
print('计算X中所有列上元素的最大值:', X.max(axis=0))
print('计算X中所有行上元素的最大值:', X.max(axis=1))
print()
print('计算X中所有元素的最小值:', X.min())
print('计算X中所有列上元素的最小值', X.min(axis=0))
print('计算X中所有行上元素的最小值:', X.min(axis=1))
输出:
X =
[[1 2]
[3 4]]
计算在X中所有元素的平均数: 2.5
X的所有列中所有元素的平均值: [2. 3.]
X中所有行中所有元素的平均值: [1.5 3.5]
计算X中所有元素的总和 10
计算X中所有列中元素的总和: [4 6]
计算X中所有行中元素的总和: [3 7]
计算X中所有元素的标准差: 1.118033988749895
计算X中所有列中元素的标准差: [1. 1.]
计算X中所有行中元素的标准差: [0.5 0.5]
计算X中所有元素的中位数: 2.5
计算X中所有列上元素的中位数: [2. 3.]
计算X中所有行上元素的中位数: [1.5 3.5]
计算X中所有元素的最大值: 4
计算X中所有列上元素的最大值: [3 4]
计算X中所有行上元素的最大值: [2 4]
计算X中所有元素的最小值: 1
计算X中所有列上元素的最小值 [1 2]
计算X中所有行上元素的最小值: [1 3]
NumPy 使 ndarray 中的所有元素与单个数字相加,而不使用复杂的循环
import numpy as np
# 创建一个秩为2的ndarray
X = np.array([[1,2], [3,4]])
# 打印X
print('X = \n', X)
print()
# 整体ndarray 与 单个数进行加减运算
print('3 * X = \n', 3 * X)
print()
print('3 + X = \n', 3 + X)
print()
print('X - 3 = \n', X - 3)
print()
print('X / 3 = \n', X / 3)
输出:
X =
[[1 2]
[3 4]]
3 * X =
[[ 3 6]
[ 9 12]]
3 + X =
[[4 5]
[6 7]]
X - 3 =
[[-2 -1]
[ 0 1]]
X / 3 =
[[0.33333333 0.66666667]
[1. 1.33333333]]
在上述运算中,NumPy 在后台对 ndarray 广播 3,使它们具有相同的形状。这样我们仅使用一行代码,就可以使 X 的每个元素加 3。
Numpy 可以对两个形状不同的 ndarray 执行相同的操作
import numpy as np
# 创建一个秩为1的ndarray
x = np.array([1,2,3])
# 创建一个秩为2的ndarray
Y = np.array([[1,2,3],[4,5,6],[7,8,9]])
# 创建一个秩为1的ndarray,并转换成秩为2的ndarray
Z = np.array([1,2,3]).reshape(3,1)
# 输出X
print('x = ', x)
print()
# 输出Y
print()
print('Y = \n', Y)
print()
# 输出Z
print()
print('Z = \n', Z)
print()
print('x + Y = \n', x + Y)
print()
print('Z + Y = \n',Z + Y)
输出:
x = [1 2 3]
Y =
[[1 2 3]
[4 5 6]
[7 8 9]]
Z =
[[1]
[2]
[3]]
x + Y =
[[ 2 4 6]
[ 5 7 9]
[ 8 10 12]]
Z + Y =
[[ 2 3 4]
[ 6 7 8]
[10 11 12]]