如何使用许多其他@properties对named元组进行扩展或子类化?
对于少数人,可以写下面的文字; 但是有很多,所以我正在寻找发电机或物业工厂.一种方法是从中生成文本_fields并执行它; 另一个是在运行时具有相同效果的add_fields.
(我的@props是为了让数据库中的行和字段分散在几个表中,所以rec.pname就是这样persontable[rec.personid].pname;但是,带有智能字段的namedtuples也有其他用途.)
""" extend namedtuple with many @properties ? """
from collections import namedtuple
Person = namedtuple( "Person", "pname paddr" ) # ...
persontable = [
Person( "Smith", "NY" ),
Person( "Jones", "IL" )
]
class Top( namedtuple( "Top_", "topid amount personid" )):
""" @property
.person -> persontable[personid]
.pname -> person.pname ...
"""
__slots__ = ()
@property
def person(self):
return persontable[self.personid]
# def add_fields( self, Top.person, Person._fields ) with the same …Run Code Online (Sandbox Code Playgroud) Gradient Descent存在局部最小值的问题.我们需要运行梯度下降指数时间来找到全局最小值.
任何人都能告诉我梯度下降的任何替代方案的优缺点.
谢谢.
machine-learning neural-network gradient-descent logistic-regression
我正准备将散景用于我编写的一些 Python 模型的交互式在线实现。
第 1 步是理解一些基本的交互式示例,但我无法在 Jupyter 笔记本中获得交互式运行的介绍性示例。我希望有人能纠正我对什么是散景自己的示例代码的复制粘贴的误解。
我知道 Bokeh 文档并不完美(我修复了对bokeh.plotting.show而不是的过时引用io.show),但我认为我使用的基本结构应该接近正确。
代码基于:https : //github.com/bokeh/bokeh/blob/master/examples/app/sliders.py
https://docs.bokeh.org/en/latest/docs/user_guide/notebook.html
############ START BOILERPLATE ############
#### Interactivity -- BOKEH
import bokeh.plotting.figure as bk_figure
from bokeh.io import curdoc, show
from bokeh.layouts import row, widgetbox
from bokeh.models import ColumnDataSource
from bokeh.models.widgets import Slider, TextInput
from bokeh.io import output_notebook # enables plot interface in J notebook
# init bokeh
output_notebook()
############ END BOILERPLATE ############
# Set up data
N = 200
x = np.linspace(0, …Run Code Online (Sandbox Code Playgroud) 我有一个简单的numpy数组,每个日期都有一个数据点.像这样的东西:
>>> import numpy as np
>>> from datetime import date
>>> from datetime import date
>>> x = np.array( [(date(2008,3,5), 4800 ), (date(2008,3,15), 4000 ), (date(2008,3,
20), 3500 ), (date(2008,4,5), 3000 ) ] )
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来推断未来的数据点:日期(2008,5,1),日期(2008年,5,20)等?我知道它可以用数学算法完成.但在这里,我正在寻找一些低调的果实.实际上我喜欢numpy.linalg.solve所做的,但它看起来并不适用于外推.也许我绝对错了.
实际上更具体地说,我正在构建一个烧毁图表(xp术语):'x = date和y =要完成的工作量',所以我已经完成了已经完成的冲刺,我想要想象未来的sprint如何如果目前的情况持续下去将会发生.最后我想预测发布日期.因此,"要完成的工作量"的性质总是落在烧毁图表上.另外,我想获得推断的发布日期:音量变为零时的日期.
这一切都是为了向开发团队展示事情的进展.这里的准确性并不那么重要:)开发团队的动机是主要因素.这意味着我对非常近似的外推技术绝对没问题.
问题
我想将网格(2D阵列)划分为随机形状的部分(想想地球的构造板块).
标准是:
我的解决方案
请注意,为了避免在其内部长出"臂"或大孔的部分,我创建了两个存储阵列:一个用于与一个单元相邻的单元,当前部件ID号,另一个用于与多个单元相邻的单元,然后我在前者之前用尽了后者.
运行我的解决方案提供以下内容:
网格大小:200
宽度:20
高度:10个
部分:7
66633333111114444466
00033331111114444466
00003331111114444466
00003331111144444660
0000333111164444660
00000336111664422600
00000336615522222200
00006655555522222200
00006655555552222220
00066655555552222220
产品号:0产品
尺寸:47
部件号:1
零件尺寸:30
产品号:2产品
尺寸:26
产品号:3产品
尺寸:22
产品号:4产品
尺寸:26
产品号:5产品
尺寸:22
产品号:6产品
尺寸:27
我的解决方案有问题:
其他想法:
结论:
所以这就是问题:我是一名初学程序员,不确定我是否以正确的方式解决了这个问题.我可以创建一些更多的"补丁"方法,将碎片部分移动到一起,并允许形成部分"跳出"死胡同,如果它们卡在它们中,但它感觉凌乱.
你会如何解决这个问题?我可以用一些性感的数学来简化一些事情吗?
谢谢
language-agnostic algorithm grid multidimensional-array computational-geometry
我有各种产品的字母数字产品代码集合.类似的产品在其代码中没有内在的相似性,即产品代码"A123"可能意味着"Harry Potter Volume 1 DVD"和"B123"可能意味着"Kellogs Corn Flakes".我实际上也没有产品的描述或标识.我所拥有的只是此代码的"所有者".因此,我的数据(以非正常方式)看起来像这样:
Owner1:ProductCodes A123,B124,W555,M221,M556,127,102
所有者2:ProductCode D103,Z552,K112,L3254,223,112
Owner3:ProductCode G123
....
我有大量(即Terabytes)这组数据.
我假设一个拥有者 - 对于大多数人 - 拥有不确定数量的类似产品组 - 即一个拥有者可能只有两组 - 所有的哈利波特的DVD和书籍,还有一个"铁娘子"CD的集合.我想分析这些数据并确定产品代码之间的距离函数,这样我就可以开始假设产品代码彼此之间的"接近程度",并对产品代码进行聚类(因此我也可以确定所有者拥有的组数).我已经开始对文本聚类算法进行一些研究,但有很多可供选择,我不确定哪种方法最适合这种情况.
有人能指出我最合适的基于python的集群功能/库吗?
这个问题与SO中的这个问题有关(matplotlib-change-colormap-tab20-to-have-three-colors)
我想以一种方式调整tab10色彩图,我可以按照我想要的步骤更改每种颜色的alpha级别.下面是一个示例(对于具有3个alpha级别的9种颜色),它不会产生预期的输出.此外,它不够通用(因为if elif staements).
任何想法我怎么能这样做?
在这个例子中,我有3个组,有3个子组:
import pandas as pd
from matplotlib import pyplot as plt
import numpy as np
n_feature = 3
sub_feature = 3
col = []
for index in range(n_feature*sub_feature):
# loop over colors and change the last entry in descending order 3 times
col.append(list(plt.cm.tab10(index)))
i = 0
for item in col:
# loop over colors and change the last entry in descending order 3 times
if i == 0:
item[-1] = 0.9
i+=1
elif …Run Code Online (Sandbox Code Playgroud) 在 python 中,如果我正在编写一个函数,这是输入提示字符串列表的最佳方式:
def sample_def(var:list[str]):
我想在几对纬度/经度上创建一个 Voronoi 图,但想使用它们之间的大圆距离,而不是(不准确的)毕达哥拉斯距离。
我可以让 qhull/qvoronoi 或其他 Linux 程序执行此操作吗?
我考虑将点映射到 3D,让 qvoronoi 创建 3D Voronoi 图 [1],并将结果与单位球体相交,但我不确定这是否容易。
[1] 我意识到两个纬度/经度之间的 3D 距离(“穿过地球”路径)与大圆距离不同,但很容易证明这种变换保留了相对距离,这才是最重要的对于 Voronoi 图。
例如,尝试理解这些结果:
>>> x
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> (x == np.array([[1],[2]])).astype(np.float32)
array([[ 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],
[ 0., 0., 1., 0., 0., 0., 0., 0., 0., 0.]], dtype=float32)
>>> (x == np.array([1,2]))
False
>>> (x == np.array([[1]])).astype(np.float32)
array([[ 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.]], dtype=float32)
>>> (x == np.array([1])).astype(np.float32)
array([ 0., 1., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=float32)
>>> (x == …Run Code Online (Sandbox Code Playgroud) python ×7
numpy ×2
algorithm ×1
bokeh ×1
color-scheme ×1
colors ×1
function ×1
grid ×1
interactive ×1
math ×1
matplotlib ×1
namedtuple ×1
properties ×1
qhull ×1
spline ×1
var ×1
voronoi ×1