python 数组系列

调试过程中遇到的一些问题,后面应该构成系列认知,现在先简单记录.

a = np.zeros(5)
>>> print a
[0. 0. 0. 0. 0.]
>>> b = np.zeros((1,5))
>>> print b
[[0. 0. 0. 0. 0.]]

两个打印出来是不一致的,第二种方式比第一种多了一个维度.访问方式也不一样.

print a[1]
0.0
>>> print b[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: index 1 is out of bounds for axis 0 with size 1
>>> print b[0,1]
0.0

数组拼接.

np.vstack():在竖直方向上堆叠

np.hstack():在水平方向上平铺

 arr1=np.array([1,2,3])
 arr2=np.array([4,5,6])

>>> arr5 = np.array([arr1,arr2])
>>> print arr5
[[1 2 3]
 [4 5 6]]

>>> arr3 = np.vstack((arr1,arr2))
>>> print arr3
[[1 2 3]
 [4 5 6]]

arr6 = np.hstack((arr1,arr2))
>>> print arr6
[1 2 3 4 5 6]

应用,在DQN中就用到了这个函数,把数组和数组组一起变成了一列:

print ('(s, [a, r], s_)',(s, [a, r], s_))

>>>('(s, [a, r], s_)', (array([ 6.4531216 ,  3.83963363, 53.08472093]), [4, 0], array([ 6.4531216 ,  3.83963363, 52.56202333])))


print ('(s, [a, r], s_)',np.hstack((s, [a, r], s_)))
>>>  array([ 6.4531216 ,  3.83963363, 52.56202333,  6.        ,  0.        ,
        6.6531216 ,  3.83963363, 52.01932574]))  #变成了一个数组

返回数组中最大值和最大值的位置(索引).

  • min/max是python内置的函数,返回最大值.
  • np.argmin/np.argmax是numpy库中的成员函数,返回索引

  • 参数axis=0,按列找,axis=1,按行找.

  • 如果是list的化则要用其他函数.

print a
[[1. 0. 0. 0. 0.]
 [0. 1. 0. 5. 0.]
 [0. 0. 1. 0. 0.]
 [0. 0. 0. 1. 0.]
 [0. 0. 0. 0. 1.]]
>>> b=np.max(a)
>>> print b
5.0
>>> b=np.argmax(a)
>>> print b
8


>>> c=np.max(a,axis=0)
>>> print c
[1. 1. 1. 5. 1.]
>>> c=np.max(a,axis=1)
>>> print c
[1. 5. 1. 1. 1.]


>>> d=np.argmax(a,axis=0)
>>> print d
[0 1 2 1 4]
>>> d=np.argmax(a,axis=1)
>>> print d
[0 3 2 3 4]

寻找list中最大值和其索引,因为其只有一维,所以没有其他参数.

>>> list = [9, 12, 88, 14, 25]
>>> max_list =  max(list)
>>> print max_list
88
>>> max_index =list.index(max(list))
>>> print max_index
2

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值