python中矩阵怎么表⽰_详解numpy矩阵的创建与数据类型Numpy是python常⽤的⼀个类库,在python的使⽤中及其常见,⼴泛⽤在矩阵的计算中,numpy对矩阵的操作与纯python⽐起来速度有极⼤的差距。
⼀、 构造矩阵
矩阵的构造可以有多种⽅法:
1.使⽤python中的⽅法构造矩阵
- ⽣成⼀维矩阵
# 使⽤python⾃带的range()⽅法⽣成⼀个矩阵
a = list(range(100))#range()产⽣从0-99的⼀个列表
print(a)
- ⽣成⼆维及多维矩阵
# 使⽤python⾃带的range()⽅法⽣成⼀个矩阵
a = list([[1,2,3],
[4,5,6],
[7,8,9]])
print(a)
2.使⽤numpy中的⽅法来⽣成矩阵
numpy类库中⽣成的矩阵的数据类型为numpy.ndarray,与python中的列表不同。
(1)array()⽅法⽣成矩阵
#numpy⼊门
import numpy as np
data = [6,7.5,8,0,1]
data1 = [[1,2,3],[4,5,6]]
arr = np.array(data)
arr1 = np.array(data1)
print(arr)
print(arr1)
array()⽅法可以将⼀个列表转换为对应维度相同的numpy矩阵。
(2)⽣成随机矩阵⽅法rand()和randn()
import numpy as np
#⽣成⼀个随机数矩阵
data = np.random.randn(2,3)#是从标准正态分布中返回⼀个或多个样本值
data1 = np.random.rand(2,3)#随机样本位于[0, 1)中
print(data)
print(data1)
(3)矩阵的加法与乘法,numpy矩阵中矩阵与数字相加或相乘,则数组中每⼀个元素都执⾏相加或相乘。import numpy as np
data = np.random.randn(10)#是从标准正态分布中返回⼀个或多个样本值
print(data)
print("data * 10 :\n",data*10)#每⼀个元素乘以⼗
print("data+data:\n",data+data)#实现数组中每⼀个位置⾃加操作
(4)零矩阵
可以⽤numpy的zeros()⽅法⽣成元素值全为0的矩阵。
import numpy as np
data = np.zeros(10)#⽣成⼀个⼀维的全零矩阵,矩阵的元素为⼗个
print("data:",data)
data1 = np.zeros((3,4))#⽣成⼀个三⾏四列的全零矩阵
print("data1:",data1)
data2 = np.zeros((3,4,3))
print("data2:",data2)#⽣成⼀个三维的全零矩阵
(5)⼀矩阵
同零矩阵⼀样,numpy中的ones()⽅法可以⽣产元素值全为⼀的矩阵
import numpy as np
data = np.ones(10)#⽣成⼀个⼀维的全零矩阵,矩阵的元素为⼗个
print("data:",data)
data1 = np.ones((3,4))#⽣成⼀个三⾏四列的全零矩阵
print("data1:",data1)
random在python中的意思data2 = np.ones((3,4,3))
print("data2:",data2)
(6)empty()⽅法
python中也可以使⽤pty()⽅法来⽣产⼀些看似是0的数,语法和ones()⽅法⼀样#numpy⼊门
import numpy as np
data = np.empty(10)#⽣成⼀个⼀维的全零矩阵,矩阵的元素为⼗个
print("data:",data)
data1 = np.empty((3,4))#⽣成⼀个三⾏四列的全零矩阵
print("data1:",data1)
data2 = np.empty((3,4,3))
print("data2:",data2)
就算是在编译器中显⽰的值为0,但其实际的值并不是0,只是⼀个很靠近0的数。
#numpy⼊门
import numpy as np
data1 = np.empty((3,4))#⽣成⼀个三⾏四列的全零矩阵
print("data1:\n",data1)
print("1/data1:\n",1/data1)
inf表⽰⽆穷⼤的意思,如若data1中数据的值为0的话,在运⾏的过程中解释器会出错。
#注意:认为np.empty会返回全0数组的想法是不安全的。很多情况下(如前所⽰),它返回的都是⼀些未初始化的垃圾值。(7)arange()⽅法
类似于range()⽅法
import numpy as np
a = np.arange(10)
b = np.arange(2,20)
c = np.arange(0,50,5)
print("a:",a)
print("b:",b)
print("c:",c)
当只有⼀个参数n时表⽰产⽣⼀个从[0–n)的不包含n的⼀个矩阵
当有两个参数m,n时表⽰产⽣⼀个从[m,n)的不包含n的⼀个矩阵
当含有三个参数m,n,l时,表⽰从m开始,每次已l为步长,产⽣⼀个矩阵,最⼤值不超过n
(8)reshape()⽅法,重新⽣成矩阵的维度⼤⼩
import numpy as np
a = np.arange(10)
print(a)
shape(2,5)
print(b)
上例中,将⼀个⼀维的⼗元素矩阵转换成⼀个两⾏五列的矩阵。
注意:使⽤reshape()⽅法从⼀维转多维时,⼀维矩阵的元素个数必须与多维矩阵的相同,也即是上例中的10=2*5,如若不相等的话解释器或出现错误。
(9)⼀些与矩阵的⼤⼩有关的值
import numpy as np
array = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
print(array)
print(array.ndim)#维度
print(array.shape)#各维度的值
print(array.size)#元素个数
print(array.dtype)#元素的数据类型
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持我们。
本⽂标题: 详解numpy矩阵的创建与数据类型
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论