是否可以同时从列表中删除多个元素?如果我想删除索引0和2处的元素,并尝试类似del somelist [0],然后是del somelist [2],则第二个语句实际上会删除somelist [3].
我想我总是可以先删除编号较高的元素,但我希望有更好的方法.
该list.index(x)函数返回值为的第一个项的列表中的索引x.
是否有一个函数,list_func_index()类似于index()具有函数的函数f(),作为参数.该函数在列表的f()每个元素上运行e,直到 f(e)返回True.然后list_func_index()返回索引e.
Codewise:
>>> def list_func_index(lst, func):
for i in range(len(lst)):
if func(lst[i]):
return i
raise ValueError('no element making func True')
>>> l = [8,10,4,5,7]
>>> def is_odd(x): return x % 2 != 0
>>> list_func_index(l,is_odd)
3
Run Code Online (Sandbox Code Playgroud)
有更优雅的解决方案吗?(以及该功能的更好名称)
我只是从一般的keras和机器学习开始.
我训练了一个模型来分类来自2个类的图像并使用它保存model.save().这是我使用的代码:
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K
# dimensions of our images.
img_width, img_height = 320, 240
train_data_dir = 'data/train'
validation_data_dir = 'data/validation'
nb_train_samples = 200 #total
nb_validation_samples = 10 # total
epochs = 6
batch_size = 10
if K.image_data_format() == 'channels_first':
input_shape = (3, img_width, img_height)
else:
input_shape = (img_width, img_height, 3)
model = Sequential()
model.add(Conv2D(32, …Run Code Online (Sandbox Code Playgroud) 是否有类似的东西os.path.dirname(path),但在pathlib?
我想将脚本printf中的a 的输出bash指向stderr而不是stdout.
我不是要求重定向stderr或stdout从哪里重定向到当前路由.我只是希望能够将输出从a发送printf到stderr而不是默认值stdout.
我进行了一些实验,发现如下例所示,附加1>&2到printf我想做的事情.但是,我没有使用bash的经验.所以我的主要问题是,是否有" 更好 "的方法来做到这一点bash?
通过" 更好 "我的意思是有另一种方法来做这个更常用,更传统,或更惯用?一个更有经验的bash程序员将如何做到这一点?
#!/bin/bash
printf "{%s} This should go to stderr.\n" "$(date)" 1>&2
printf "[(%s)] This should go to stdout.\n" "$(date)"
Run Code Online (Sandbox Code Playgroud)
我还有一个次要问题.我问的不是因为我需要知道,而是因为我只是好奇并希望更好地了解正在发生的事情.
看来上面只有在shell脚本中运行时才会起作用.当我从命令行尝试它时似乎不起作用.
这是我的意思的一个例子.
irrational@VBx64:~$ printf "{%s} Sent to stderr.\n" "$(date)" 1>&2 2> errors.txt
{Sat Jun 9 14:08:46 EDT 2012} …Run Code Online (Sandbox Code Playgroud) 我正在制作一个嵌入乳胶的出版品质图,我希望在尺寸和字体方面非常精确(因此字体在文章中与图中的尺寸相同).为了防止绘图缩小乳胶,我希望它具有确切的尺寸,但我不能.这是我的代码:
import matplotlib.pyplot as plt
from matplotlib import rc, rcParams
from numpy import sin
rc('text', usetex=True)
rc('font', family='serif', serif='Computer Modern Roman', size=8)
rc('legend', fontsize=10)
width_in = 5
fig = plt.figure(1, figsize=(width_in, 2))
ax = fig.add_subplot(111)
ax.plot(range(0,100), sin(range(0,100)))
fig.tight_layout()
fig.savefig('test.eps', bbox_inches='tight', pad_inches=0)
plt.close()
Run Code Online (Sandbox Code Playgroud)
问题在于bbox_inches ='tight'和pad_inches = 0.添加这些选项使我的绘图宽4.76英寸而不是声明5英寸.但我希望他们节省空间.那怎么解决呢?
编辑:嗯,答案建议删除bbox_inches='tight',pad_inches=0并使用只tight_layout().然后图像大小合适,但它仍然有一些白色的填充物.我可以删除它fig.tight_layout(pad=0),但随后在框内移动的图标题,看起来很难看.另一方面,我可以使用tight_layout(rect=[...])并获得所需的结果,但这是一个手动工作,以使数字正确 - 我不喜欢它.因此,目前我没有看到任何简单而通用的解决方案.
我想使用Keras 做类似于完全卷积网络的论文(https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf).我有一个网络,最终使特征映射变平并通过几个密集层运行它们.我想将这样的网络中的权重加载到一个密集层被等效卷积替换的地方.
可以使用Keras附带的VGG16网络作为示例,其中最后一个MaxPooling2D()的7x7x512输出被展平,然后进入密集(4096)层.在这种情况下,Dense(4096)将被7x7x4096卷积替换.
我的真实网络略有不同,有一个GlobalAveragePooling2D()层而不是MaxPooling2D()和Flatten().GlobalAveragePooling2D()的输出是2D张量,并且不需要另外将其展平,因此包括第一个的所有密集层将被1x1卷积替换.
我已经看到了这个问题:Python keras如何将密集层转换为卷积层,如果不相同则看起来非常相似.问题是我无法得到建议的解决方案,因为(a)我使用TensorFlow作为后端,所以权重重新排列/过滤"旋转"不对,而且(b)我无法想象如何加载权重.将旧权重文件加载到新网络model.load_weights(by_name=True)中不起作用,因为名称不匹配(即使它们的尺寸不同).
使用TensorFlow时重新排列应该是什么?
如何加载重量?我是否创建了每个模型中的一个,在两者上调用model.load_weights()来加载相同的权重,然后复制一些需要重新排列的额外权重?
我有一个动画,其中数据的范围变化很大.我想有一个colorbar跟踪数据的最大值和最小值(即我希望它不被修复).问题是如何做到这一点.
理想情况下,我希望colorbar它在自己的轴上.
我尝试了以下四件事
问题:新的颜色条是每帧的绘图
#!/usr/bin/env python
"""
An animated image
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
ax = fig.add_subplot(111)
def f(x, y):
return np.exp(x) + np.sin(y)
x = np.linspace(0, 1, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
frames = []
for i in range(10):
x += 1
curVals = f(x, y)
vmax = np.max(curVals)
vmin = np.min(curVals)
levels = np.linspace(vmin, vmax, 200, endpoint …Run Code Online (Sandbox Code Playgroud) 我有3列让说A,B和C.我需要计算NULL每列中的值.
例如:
A | B | C
-------------
1 |NULL| 1
1 | 1 | NULL
NULL| 1 | 1
NULL|NULL| 1
Run Code Online (Sandbox Code Playgroud)
应输出:
A | B | C
---------------
2 | 2 | 1
Run Code Online (Sandbox Code Playgroud)
我已经尝试过计数,求和,子查询但是没有任何东西对我有效.任何输入将不胜感激!
我使用python,我对测试有点新意.我经常看到测试用本地方法替换外部依赖项,如下所示:
import some_module
def get_file_data():
return "here is the pretend file data"
some_module.get_file_data = get_file_data
# proceed to test
Run Code Online (Sandbox Code Playgroud)
我在这个问题中看到这被称为"猴子修补" .我还看到"模拟"这个词与"钱修补"或者似乎非常相似的场景一起使用了很多.
这两个概念有什么区别吗?