python中矩阵和数组
程序员文章站
2022-05-09 15:03:04
...
我感觉张量是一个统称,数组、矩阵这些都可被称为张量。
矩阵是数组的特例。 当数组是二维的时候,就可以称为矩阵。
矩阵和二维数组在某些场合可以通用。
创建数组
'''
创建数组时,错误的 将数值当作参数,array()里面的参数应该是
+9一个列表或者一个元组或者说在外观上已经是一个数组了
numpy库中的array将其变成数组
普通的创建方法: 只有当元素已知才能创建,参数的格式就是创建出来的数组的格式
'''
1.
#创建一维数组
y=np.array([1,2])
print(y,type(y))
结果:
[1 2]
print(y,type(y),y.shape) (2,)
创建一维数组的另一种方式
使用 arange() 函数,他的功能 和 range 相似,
区别是 arange() 会返回一个一维数组, 有了这样一个一维数组 之后,
我们可以使用 reshape() 函数来改变他的形状。
2.
#创建二维数组 两行三列
x=np.array([(1,2,3),(3,4,3)])
print(x,type(x),x.shape)
结果:
[[1 2 3]
[3 4 3]]
<class 'numpy.ndarray'> (2, 3)
可以看出他们的类型已经变成了 ndarray(n维数组的形式)
数组函数
1.x.shape
x=np.array([(1,2,3),(3,4,3)])
print(x.shape)
结果:
(2, 3)
表示这是一个二维数组,两行三列
2.x.reshape(),如果行列数 未定 可以是使用-1
numpy.reshape(a, newshape, order=’C’)
把数组的维度进行改变
1.
x=np.array([(1,2,3),(3,4,3)])
print(x)
y=x.reshape(3,2)
print(y)
结果:
[[1 2 3]
[3 4 3]]
[[1 2]
[3 3]
[4 3]]
2.
x.reshape(1,-1)
表示列数未定,但是 有1行
3. zeros() ,生成的数组全是零; ones() 生成元素全是1的矩阵
x=np.zeros((2)) #会生成一维数组
print(x)
y=np.zeros((2,)) #会生成一维数组
print(y)
z=np.zeros((2,3)) #会生成二维数组
print(z)
#用一个元组作为参数,控制生成的数组的 形状
结果:
[0. 0.]
[0. 0.]
[[0. 0. 0.]
[0. 0. 0.]]
4. eye() 生成单位矩阵 (对角线元素是1,其余元素全是0)
x=np.eye(3)
print(x)
创建一维数组的另一种方式
使用 arange() 函数,他的功能 和 range 相似,区别是 arange() 会返回一个一维数组, 有了这样一个一维数组 之后,我们可以使用 reshape() 函数来改变他的形状。
5.transpose()
y=np.arange(24).reshape((2,3,4))
print(y,y.shape)
x=y.transpose(0,2,1)
print(x,x.shape)
结果:
[[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]] (2, 3, 4)
[[[ 0 4 8]
[ 1 5 9]
[ 2 6 10]
[ 3 7 11]]
[[12 16 20]
[13 17 21]
[14 18 22]
[15 19 23]]] (2, 4, 3)
从结果可以看出来 ,可原来的形状是(2,3,4),转置后数组的形状变成了 (2,4,3)
其实transpose()里面的参数 0对应2,1对应3,2 对应4
我是看了这个以后理解的。
https://bbs.pinggu.org/thread-4565507-1-1.html
这是一条分界线
下面是矩阵
推荐阅读
-
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
-
使用Python和xlwt向Excel文件中写入中文的实例
-
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
-
详谈Python中列表list,元祖tuple和numpy中的array区别
-
浅谈numpy数组中冒号和负号的含义
-
Python中类型关系和继承关系实例详解
-
对python中矩阵相加函数sum()的使用详解
-
python 判断矩阵中每行非零个数的方法
-
python中的实例方法、静态方法、类方法、类变量和实例变量浅析
-
python3开发进阶-Djamgo框架中的JSON和AJAX