Python numpy,数组与数组的运算,sum数组元素求和,矩阵的乘法

numpy中两个多维数组之间可以进行运算的前提是:

1、shape为(4, 3, 2)可以与shape为(3, 2)的数组进行运算。(维度从后面开始算,可以成功匹配)

2、shape为(4, 3, 2)也可以与shape为(4, 3)的数组进行运算。(维度从前面开始算,可以成功匹配)

意义(好处):举个例子:每列的数据减去列的平均值的结果

 

demo.py(numpy,数组的运算):

# coding=utf-8
import numpy as np


t1 = np.array([[0, 1, 2], [3, 4, 5]])  # 二维数组
print(t1)
'''
[[0 1 2]
 [3 4 5]]
'''

# 多维数组与单个数字 + - * /,就是数组中的所有元素依次与该数字进行+ - * /。
t2 = t1 + 5
print(t2)
'''
[[ 5  6  7]
 [ 8  9 10]]
'''
# numpy中除以0并不会报错,只是警告。  0/0返回nan(不是一个数字); 1/0返回inf(正无穷),-1/0返回-inf(负无穷)


# 同形状的两个数组相 + - * /,就是两个数组中对应位置元素进行+ - * /。
t3 = np.array([[10, 11, 12], [13, 14, 15]])  # 二维数组
t4 = t1 * t3
print(t4)
'''
[[ 0 11 24]
 [39 56 75]]
'''


# 多维数组与一维数组(行数组)+ - * /,就是多维数组的每一行依次与一维数组进行+ - * /。 (前提:多维数组与一维数组的列数一致)
t5 = np.array([6, 7, 8])  # 一维数组(行数组)
t6 = t1 * t5
print(t6)
'''
[[ 0  7 16]
 [18 28 40]]
'''


# 多维数组与多行一列的二维数组(列数组)+ - * /,就是多维数组的每一列依次与列数组进行+ - * /。(前提:多维数组与列数组的行数一致)
t7 = np.array([[50],[60]])  # 多行一列的二维数组(列数组)
t8 = t1 * t7
print(t8)
'''
[[  0  50 100]
 [180 240 300]]
'''

demo.py(numpy,矩阵的乘法,np.dot()):

# coding=utf-8
import numpy as np


t1 = np.array([[0, 1, 2], [3, 4, 5]])  # 二维数组(2行3列)
print(t1)
'''
[[0 1 2]
 [3 4 5]]
'''

t2 = np.array([[10, 11], [12, 13], [14, 15]])  # 二维数组(3行2列)
print(t2)
'''
[[10 11]
 [12 13]
 [14 15]]
'''

# 矩阵的乘法。 内标同可以乘,内标不同不可以乘
t3 = np.dot(t1, t2)
print(t3)
'''
[[ 40  43]
 [148 160]]
'''

demo.py(sum(),数组元素求和):

# coding=utf-8
import numpy as np


t1 = np.arange(12).reshape((3,4))
print(t1)
'''
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
'''

a = np.sum(t1)  # 数组所有元素求和。 nan与数字运算还是nan
print(a)  # 66

b = np.sum(t1, axis=0)   # axis可以指定哪个轴上相加求和
# b = t1.sum(axis=0)  # 数组本身也有sum()函数
print(b)  # [12 15 18 21]

c = np.sum(t1, axis=1)   # axis可以指定哪个轴上相加求和
print(c)  # [6 22 38]

 

 

你可能感兴趣的:(Python+)