一些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.]]]]

tensorflow中tensor转换为ndarray

  • TF 1.x版本:
with tf.Session() as sess:
    data_numpy = data_tensor.eval()
  • TF 2.x版本:
data_numpy = data_tensor.numpy()

matplotlib的使用技巧

  • 画图保存时去除白边和坐标轴
import matplotlib.pyplot as plt
plt.axis('off')
plt.imshow(a, cmap='gray')
plt.savefig('./1.png', bbox_inches='tight', pad_inches=0)
plt.show()
  • 绘制热力图
    将函数plt.imshow中的参数camp设置为想要的颜色即可
    参数选择参考官方文档 camp颜色选择
    一般热力图选择为camp='jet'
    颜色反转在参数后加_r,例如camp='jet_r'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值