numpy模块的一些功能。

1.np.expand_dims,改变形状

x  = np.array([[[1,2,3],[4,5,6]]])这里或者直接写成(1,2,3)

w = x.shape

(1,2,3)

创建一个三维数组,由1个,2行,3列的二维数组,组成.

几个[] 就是几维。

b = np.expand_dims(a, axis=0)

扩展数组形状:维度

变换为(1,1,2,3) 

含义为在1,2,3三个数产生的四个间隔中零的位置,即1之前添加1

同理axis = 2

变换为(1,2,1,3)

注意:

axis的值不能大于(1,2,3)产生的间隔数,(1,2,3)只有四个间隔,所以axis<4

当axis大于最大间隔的时候会按照最大间隔插入.

*--------------------------------------*-----------------------------------------------------------*

a = np.arange(36)#数组元素
b = a.reshape(6,6)#改变数组形状
'''[[ 0  1  2  3  4  5]
    [ 6  7  8  9 10 11]
    [12 13 14 15 16 17]
    [18 19 20 21 22 23]
    [24 25 26 27 28 29]
    [30 31 32 33 34 35]]'''
#print(b[4])
w  = np.array([[6,7],[8,9],[10,11]])
#print(b[:,3])#取得第三列
#print(b[:3])#从0到第三行
b[b>23]=0
print(b[0:2])
print(b[0:2,2:4])#逗号前行,后面式列数
print(b[:,:3])
print('*----------------------------*')
print(b[:,None])#None不进行切片,把整体作为数组元素处理
print(b[:,:,None])#None把取到的值按照列的形式返回
np.concatenate((a, b), axis=0)#拼接数组

 np.concatenate合并数组

a = np.ones((3,2,4))
#3个2行4列的二维数组,组成的三维数组
print(a)
b = np.zeros((3,2,4))

c = np.ones((3,2,4))

d = np.concatenate([a,b,c],2)
print(d)
print(d.shape)

out:::::::
a:
[[[1. 1. 1. 1.]
  [1. 1. 1. 1.]]

 [[1. 1. 1. 1.]
  [1. 1. 1. 1.]]

 [[1. 1. 1. 1.]
  [1. 1. 1. 1.]]]
d:
[[[1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]
  [1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]]

 [[1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]
  [1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]]

 [[1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]
  [1. 1. 1. 1. 0. 0. 0. 0. 1. 1. 1. 1.]]]
(3, 2, 12)

可以看出当, 2的时候对数组纵向拼接只改变了三维数组中二维数组的行数,3*4=12,其他几个值行数在[]a,b,c]中对应的位置正好是2,所以写成-1作用一样,0是对数组的个数进行拼接,1改变行数,不能改变维度


np.linspace创建等差数列

a = np.linspace(1,2)
print(a)

输出:
[1.         1.02040816 1.04081633 1.06122449 1.08163265 1.10204082
 1.12244898 1.14285714 1.16326531 1.18367347 1.20408163 1.2244898
 1.24489796 1.26530612 1.28571429 1.30612245 1.32653061 1.34693878
 1.36734694 1.3877551  1.40816327 1.42857143 1.44897959 1.46938776

可以看出是创建等差数列,默认,生成50个,其实是有三个参数前两个是开始s和结尾e,第三个是确定元素的个数n,因为间隔数比原始的少一所以,差值是(e-s)/n-1


np.newaxis,增加一个维度

a = np.arange(3)
b = a[:,np.newaxis]
print(a)
print(b)
[0 1 2]
[[0]
 [1]
 [2]]

变成二维的数组

np.random.normal 

传送

np.square(a): 计算各元素的平方 

a = np.arange(3)
print(a)
c = np.square(a)
print(c)

输出:
[0 1 2]
[0 1 4]

np.argmax():取概率最大的索引值

np.argmax(y, axis=2)
#y是预测值,axis = 2行方向做比较
#所以在多分类的问题上y=
(256, 256, 5)
[[[0.14155747 0.7304455  0.06444897 0.01956713 0.04398087]
  [0.10523805 0.7234794  0.07442227 0.01961073 0.07724958]
  [0.13790286 0.67515504 0.08597735 0.03152192 0.06944282]
  ...
#这样在行方向上比较第一行最大值索引1,以此类推,因为有256个256行
#5列的矩阵所以这种方式出来最后的结果是256*256(每一个矩阵是256*1)
#因为五列所以索引值为4,一共出来5种分类结果。一种是背景,输出标签。

https://blog.csdn.net/weixin_38145317/article/details/79650188(具体可以看原作者的。)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值