栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

一些python笔记

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一些python笔记

列表每个元素都加一个值
#例
x= 10
a = [1, 2, 3, 4]
a = [i+x for i in a]
print(a)

#输出:[11, 12, 13, 14]
tf.pad()的使用方法

在官方文档中,是这么描述的

tf.pad(tensor, paddings, mode='CONSTANT', constant_values=0, name=None)

关键参数为:
tensor:输入
paddings:padding大小
mode:padding模式
其中padding应该为每一个维度前后需要padding的数量,具体看下面例子

t=[
   [[2,3,4],[5,6,7]],
   [[2,3,4],[5,6,7]]
    ]
t = tf.constant(t)
print(t.shape)
print(tf.pad(t,[[0,0],[1,2],[3,4]],"CONSTANT"))

#输出为:
(2, 2, 3)
tf.Tensor(
[[[0 0 0 0 0 0 0 0 0 0]
  [0 0 0 2 3 4 0 0 0 0]
  [0 0 0 5 6 7 0 0 0 0]
  [0 0 0 0 0 0 0 0 0 0]
  [0 0 0 0 0 0 0 0 0 0]]

 [[0 0 0 0 0 0 0 0 0 0]
  [0 0 0 2 3 4 0 0 0 0]
  [0 0 0 5 6 7 0 0 0 0]
  [0 0 0 0 0 0 0 0 0 0]
  [0 0 0 0 0 0 0 0 0 0]]], shape=(2, 5, 10), dtype=int32)

第一个维度对应的是[0,0],所以没有进行padding;
第二个维度(也就是行这一维)对应[1,2],也就是在上面一行,下面两行;
第三个维度(也就是列这一维)对应[3,4],也就是在左面三行,右面四行。

ndarry[:,None]的使用

可以直接将数组扩大一个维度,如下例:

import numpy as np

a = np.array([1., 2., 1.])
print(a.shape)
a = a[:,None]
print(a.shape)
print(a)

#输出:
(3,)
(3, 1)
[[1.]
 [2.]
 [1.]]
 数组a从三个元素的一维数组变成了三行一列的二维数组

以此类推可以得到的是:

import numpy as np

a = np.array([1., 2., 1.])
b = a[:,None]

b = a[:,None]*a[None,:]
b = b[None,None,:,:]

print(b.shape)
print(b)

#输出:
(1, 1, 3, 3)
[[[[1. 2. 1.]
  [2. 4. 2.]
  [1. 2. 1.]]]]
方法.repeat()的使用

.repeat(repeats, axis)
repeats:重复的次数
axis:需要重复的维度
例:

import numpy as np

a = np.array([1., 2., 1.])
b = a[:,None]

b = a[:,None]*a[None,:]
c = b[None,None,:,:].repeat(3,axis=0)
print(b[None,None,:,:].shape)
print(c.shape)
print(c)

#输出:
(1, 1, 3, 3)
(3, 1, 3, 3)
[[[[1. 2. 1.]
   [2. 4. 2.]
   [1. 2. 1.]]]


 [[[1. 2. 1.]
   [2. 4. 2.]
   [1. 2. 1.]]]


 [[[1. 2. 1.]
   [2. 4. 2.]
   [1. 2. 1.]]]]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号