python数据分析——numpy的数据类型转换、改变形状以及数组之间的计算,转置

转换数据类型

numpy的array函数生成的数据默认是int型,可以使用astype对数据类型进行转换,代码如下所示:

import numpy as np

a = np.array([2,3,4])
print(a,a.dtype)
print('------')
b = a.astype(np.complex)#转换数据类型为complex
print(b.dtype,a.dtype)

运行结果如图,可以看出将原来数据类型为int的数据转换成了complex型
在这里插入图片描述

改变矩阵形状

直接修改数组ndarray的shape值,要求修改后乘积不变;直接使用reshape函数创建一个改变尺寸的新数组,原数组的shape保持不变,但是新数组和原数组共享一个内存空间,当指定某一个轴为-1的时候,表示将根据数组元素的size自动计算该轴的长度值
改变矩阵原本的形状,生成指定形状的矩阵可以使用shape函数,若要改变数据矩阵的维数则使用reshape函数,比如将三维的改为二维的,代码如下所示:

d = np.random.random((2,3,5))
print(d,d.shape)
d.shape = (3,2,5)
print(d,d.shape)
print('------')
e = d.reshape(3,10)#当知道矩阵形状的行或者列时,另一个参数可以用-1代替,就是让程序自己计算
#e = d.reshape(3,-1)
print(e,e.shape,d.shape)

python数据分析——numpy的数据类型转换、改变形状以及数组之间的计算,转置_第1张图片

数组的运算

数组之间的运算

a1 = [2,3,5]
b1 = ['222','dfy',88]
print(a1+b1)

a = np.array([2,3,5])
b = np.array([4,5,2])
print(a+b)
print(a**2)

c = np.array([[1,2,3],[4,5,6]])
d = np.array([[2,3,4],[7,8,9]])
print(c+d)

当两个数组中的数据类型不同时,两个数组相加是将两个数组中的元素都连接到一起,当两个数组中的数据都是数字,则对应着矩阵位置相加,上面代码的结果如图:
python数据分析——numpy的数据类型转换、改变形状以及数组之间的计算,转置_第2张图片
矩阵之间的点积运算使用dot函数来实现:

 = np.array([[1,2,3],[4,5,6]])
d = np.array([[2,3,4],[7,8,9]])
print(c+d)
d.shape = (3,2)
print(c)
print(d)
print('------')
print(np.dot(c,d))
print('``````')
print(c.dot(d))#计算结果与np.dot(c,d)相同

得出的运算结果是:
python数据分析——numpy的数据类型转换、改变形状以及数组之间的计算,转置_第3张图片

转置

数组转置是指将shape进行重置操作,并将其值重置为原始shape元祖的倒置,对于二维数组矩阵而言,数组的转置就是矩阵的转置,可以通过调用数组的transpose函数或T属性进行数组转置操作,实例代码如下:

import numpy as np

#转置
a = np.arange(24).reshape((2,3,4))
print(a)
b = a.T
c = np.transpose(a)#np.transpose跟a.T得到的结果是相同的

print(b,b.shape)
print(c,c.shape)

运行结果如下:
python数据分析——numpy的数据类型转换、改变形状以及数组之间的计算,转置_第4张图片
代码中a的shape原本是(2,3,4),经过转置后变为(4,3,2)

你可能感兴趣的