numpy中矩阵的常用操作

import numpy
#取(-1,1)随机数,shape为(3,4),向下取整
a = numpy.floor(10 * numpy.random.random((3,4)))
print(a)
print("--------->")
print(a.ravel())
print("--------->")
a.shape = (6,2)
print(a)
print("--------->")
print(a.T)
[[4. 2. 6. 5.]
 [1. 2. 9. 3.]
 [9. 1. 7. 3.]]
--------->
[4. 2. 6. 5. 1. 2. 9. 3. 9. 1. 7. 3.]
--------->
[[4. 2.]
 [6. 5.]
 [1. 2.]
 [9. 3.]
 [9. 1.]
 [7. 3.]]
--------->
[[4. 6. 1. 9. 9. 7.]
 [2. 5. 2. 3. 1. 3.]]

总结:

a.ravel()表示数据拉成向量,返回一个view

a.T表示翻转矩阵的shape,行变成列,列变成行

--------

获取每一列的最大值

a=numpy.random.random((2,3))        #构造一个随机数组,shape为(2,3)
ind1 = a.argmax(axis=0)             #按列获取最大值(0轴匹配index;1轴匹配columns),返回下标
a_max = a[ind1, range(a.shape[1])]    #按下标获取对应值

print(a)
print('----')
print(ind1)
print('----')
print(a_max)
[[0.93070656 0.4293619  0.04911915]
 [0.61250636 0.04286186 0.93766624]]
----
[0 0 1]
----
[0.93070656 0.4293619  0.93766624]

遗留问题:

1、a[ind1, range(a,shape[1])]   的运作机制?与a[ind1]有何区别?


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值