欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

这是一条分界线


下面是矩阵

相关标签: p