python中矩阵和数组

我感觉张量是一个统称,数组、矩阵这些都可被称为张量。
矩阵是数组的特例。 当数组是二维的时候,就可以称为矩阵。

矩阵和二维数组在某些场合可以通用。
创建数组

'''
创建数组时,错误的 将数值当作参数,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

这是一条分界线


下面是矩阵

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值