我有一个非常大的2D数组,看起来像这样:
a=
[[a1, b1, c1],
[a2, b2, c2],
...,
[an, bn, cn]]
Run Code Online (Sandbox Code Playgroud)
使用numpy,是否有一种简单的方法可以获得一个新的2D数组,例如从初始数组a中有2个随机行(无需替换)?
例如
b=
[[a4, b4, c4],
[a99, b99, c99]]
Run Code Online (Sandbox Code Playgroud) 我想转换此现有代码以使用模式匹配:
if isinstance(x, int):
pass
elif isinstance(x, str):
x = int(x)
elif isinstance(x, (float, Decimal)):
x = round(x)
else:
raise TypeError('Unsupported type')
Run Code Online (Sandbox Code Playgroud)
如何使用模式匹配编写检查,以及如何同时isinstance
测试多种可能的类型?(float, Decimal)
在TF(此处和此处)中创建自定义标量摘要有几个SO答案,但我找不到有关创建自定义直方图摘要的任何内容.自定义摘要似乎非常缺乏文档.我有一个笨拙的数组,我想总结一下 - 关于如何做出任何想法?
(tf.Summary.Value有一个我试过使用过的histo字段,但它需要一个tensorflow :: HistogramProto;那个类上也没有文档,所以我对如何制作它感到很茫然.我试过创建以下最小的失败例子).
import tensorflow as tf
import numpy as np
sess = tf.Session()
means_placeholder = tf.placeholder(tf.float32)
tf.summary.histogram('means', means_placeholder)
summaries = tf.summary.merge_all()
writer = tf.summary.FileWriter('./summaries')
means = np.random.random(10)
writer.add_summary(tf.Summary(value=[tf.Summary.Value(tag='means', histo=means)]))
Run Code Online (Sandbox Code Playgroud) 在Tensorflow中数据集类的手册中,它显示了如何对数据进行混洗以及如何对其进行批处理.然而,每个时代人们如何改变数据并不明显.我已经尝试了下面的内容,但数据的顺序与第一个时期的顺序完全相同.有人知道如何使用数据集在时代之间进行混乱吗?
n_epochs = 2
batch_size = 3
data = tf.contrib.data.Dataset.range(12)
data = data.repeat(n_epochs)
data = data.batch(batch_size)
next_batch = data.make_one_shot_iterator().get_next()
sess = tf.Session()
for _ in range(4):
print(sess.run(next_batch))
print("new epoch")
data = data.shuffle(12)
for _ in range(4):
print(sess.run(next_batch))
Run Code Online (Sandbox Code Playgroud) 如果我有一个包含一些非局部变量(在闭包中)的函数,我如何访问该变量?我可以修改它吗?如果可以,如何修改?这是此类函数的示例:
def outer():
x = 1
def inner(y):
nonlocal x
return x + y
return inner
inner = outer()
# how do I get / change the value of x inside inner?
Run Code Online (Sandbox Code Playgroud)
(如果这个问题已经在其他地方得到了回答,我深表歉意;我找不到它,所以我想一旦解决了我就会分享答案)
我可以按住 Alt 键,然后单击并拖动一行来创建一行光标。但是,我宁愿使用键盘快捷键来执行此操作(例如 alt + up 在当前光标上方的行上创建一个新光标)。我在键盘快捷键文件或命令选项板中没有看到任何有关光标重复的信息 - 这是否意味着无法为此设置快捷方式?如果没有,我需要绑定什么命令才能做到这一点?
假设我有一个 4Dnumpy
数组,其中 3D 子数组是 RGB 图像。如何将其转换为 gif?我宁愿只依赖众所周知的 Python 图像处理库。
样本数据:
import numpy as np
imgs = np.random.randint(0, 255, (100, 50, 50, 3), dtype=np.uint8)
Run Code Online (Sandbox Code Playgroud) 假设我有一个数组
a = np.array([1,2,3])
Run Code Online (Sandbox Code Playgroud)
我想把它与一些标量进行比较; 这很好用
a == 2 # [False, True, False]
Run Code Online (Sandbox Code Playgroud)
有没有办法可以做这样的比较,但同时有多个标量?比较两个数组时的默认行为是进行元素比较,但我希望将一个数组的每个元素与其他整个数组进行元素比较,如下所示:
scalars = np.array([1, 2])
some_function(a, scalars)
[[True, False, False],
[False, True, False]]
Run Code Online (Sandbox Code Playgroud)
显然我可以这样做,例如,使用for循环然后堆叠,但是有没有任何矢量化的方法来实现相同的结果?
如何holoviews
通过bokeh
后端控制绘图中使用/激活哪些工具?我已经看到了这个 SO 答案,但这只是添加了一个新的活动工具;它不会阻止任何其他工具(例如平移)处于活动状态。
对于一个具体的例子,假设我只想要悬停工具。我会尝试这样做:
import holoviews as hv
hv.extension("bokeh")
hv.Curve([1, 2, 3]).opts(tools=["hover"])
Run Code Online (Sandbox Code Playgroud)
但最终我得到了一个除了默认工具之外还悬停的图。如何指定我想要使用的所有工具的列表,以便不使用该列表之外的工具?
同样,如何指定所有活动工具的列表?例如
import holoviews as hv
hv.extension("bokeh")
hv.Curve([1, 2, 3]).opts(tools=["hover"], active_tools=[])
Run Code Online (Sandbox Code Playgroud)
让我平移和悬停都处于活动状态;我希望悬停成为唯一的工具,但没有任何工具处于活动状态。
我想holoviews
在bokeh
后端绘制一条垂直线,该线有一个显示在我的图例中的标签。我需要这条线是情节的全高,无论它是单独的还是与其他元素重叠。我怎样才能做到这一点?
我在示例中添加了一个曲线图,否则即使是可以出现在图例中的元素也只是使用它们的标签作为标题。
import numpy as np
import holoviews as hv
hv.extension("bokeh")
x = np.linspace(0, 1)
curve = hv.Curve((x, np.sin(x)), label="sin(x)")
vline = hv.VLine(0.5, label="vline")
curve * vline
Run Code Online (Sandbox Code Playgroud)
这给出了以下情节:
它没有垂直线的标签。如何让标签显示出来?
python ×9
numpy ×3
bokeh ×2
holoviews ×2
tensorflow ×2
closures ×1
isinstance ×1
jupyter-lab ×1
python-3.10 ×1