博文配套视频课程:24小时实现从零到AI人工智能
矩阵的常见属性
- shape:显示当前矩阵的形状
- dtype:显示矩阵元素的数据类型,int32则占4个字节,float64则占8个字节
- size:返回当前矩阵的元素的数量
- itemsize:返回元素所占空间的大小
# 生成了一个3行4列的二维矩阵
t1 = np.arange(12).reshape(3,4)
# 三个非常重要的属性:值,类型,形状
print(t1,type(t1),t1.shape)
'''
[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]] <class 'numpy.ndarray'> (3, 4)
'''
print('矩阵元素的数量:', t1.size)
# 矩阵元素的数量: 12
print(f'元素类型{t1.dtype},所占的空间大小:{t1.itemsize}个字节')
# 元素类型int32,所占的空间大小:4个字节
t1 = t1.astype(np.float64)
print(f'元素类型{t1.dtype},所占的空间大小:{t1.itemsize}个字节')
# 元素类型float64,所占的空间大小:8个字节```
矩阵的四则运算
如果是矩阵与数值进行四则运算则矩阵里面的每个元素分别与数值进行运算,如果矩阵与矩阵进行运算则两个运算的矩阵尺寸必须兼容
t1 = np.arange(12).reshape(3,4)
# 让t2形状与t1完全相同
t2 = t1
print(t2)
t3 = t2 * t1
print(t3)
print('矩阵尺寸可以不同,但是必须 (?,1) , (1,?)')
t2 = np.arange(4).reshape(1,4)
print(t2)
# t2中的4个元素,与t1中的每一行4个元素分别进行运算
print(t1 + t2)
# t2中的3个元素,与t1中的每一列3个元素分别进行运算
t2 = np.arange(3).reshape(3,1)
print(t2)
print(t1 * t2)
矩阵升降维
矩阵之间可以非常方便的进行升降维,而且通过代码可以发现,升降维之后的运算与升降维之前运算的结果是相同的
t1 = np.arange(12).reshape(3,4)
t2 = t1 + 1
print(t2)
'''
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
'''
# 对二维矩阵进行降维操作, order='F' 则是列优先
t3 = t1.flatten(order='C')
t3 = t3 + 1
t3 = t3.reshape(3,4)
print(t3)
'''
[[ 1 2 3 4]
[ 5 6 7 8]
[ 9 10 11 12]]
'''