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)
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)
当两个数组中的数据类型不同时,两个数组相加是将两个数组中的元素都连接到一起,当两个数组中的数据都是数字,则对应着矩阵位置相加,上面代码的结果如图:
矩阵之间的点积运算使用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)相同
数组转置是指将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)