小编den*_*nis的帖子

使用许多@properties扩展Python的namedtuple?

如何使用许多其他@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)

python properties namedtuple

11
推荐指数
1
解决办法
4964
查看次数

什么是Gradient Descent的替代品?

Gradient Descent存在局部最小值的问题.我们需要运行梯度下降指数时间来找到全局最小值.

任何人都能告诉我梯度下降的任何替代方案的优缺点.

谢谢.

machine-learning neural-network gradient-descent logistic-regression

10
推荐指数
2
解决办法
3976
查看次数

如何在 Jupyter Notebook 中获得交互式散景

我正准备将散景用于我编写的一些 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)

python interactive bokeh jupyter-notebook

10
推荐指数
1
解决办法
1万
查看次数

有没有简单的方法在python中推断数据点到未来?

我有一个简单的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如何如果目前的情况持续下去将会发生.最后我想预测发布日期.因此,"要完成的工作量"的性质总是落在烧毁图表上.另外,我想获得推断的发布日期:音量变为零时的日期.

这一切都是为了向开发团队展示事情的进展.这里的准确性并不那么重要:)开发团队的动机是主要因素.这意味着我对非常近似的外推技术绝对没问题.

python interpolation numpy spline burndowncharts

9
推荐指数
1
解决办法
2万
查看次数

将网格(2D阵列)划分为随机形状的部分?

问题
我想将网格(2D阵列)划分为随机形状的部分(想想地球的构造板块).

标准是:

  • 用户输入网格大小(程序应该缩放,因为这可能非常大).
  • 用户输入网格划分因子(多少部分).
  • 网格是矩形六角网格,顶部和底部封顶,左右环绕.
  • 零件没有碎片.
  • 其他部分内没有零件.
  • 没有微小或超大的部件.
  • 随机形状的部分,不是完美的圆形,或者是蜿蜒的蛇形.

我的解决方案

  • 创建一个可以访问/操作相邻单元格的方法.
  • 随机确定每个部分的大小(所有部分的总和等于整个2D阵列的大小).
  • 用最后一部分的id号填充整个2D数组.
  • 除了最后一个部分:
  • 在2D阵列的随机单元格中种植当前部件ID号.
  • 迭代整个阵列并将每个单元的地址存储在已经使用当前部件ID号播种的任何单元旁边.
  • 提取其中一个存储的地址,并使用当前的板ID编号填充该单元格(因此部件开始形成).
  • 重复,直到达到零件尺寸.

请注意,为了避免在其内部长出"臂"或大孔的部分,我创建了两个存储阵列:一个用于与一个单元相邻的单元,当前部件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

我的解决方案有问题:

  • 最后一部分总是支离破碎 - 在上面的例子中有三个独立的六人组.
  • 当零件在死胡同中形成并且没有足够的空间来扩展到它们的全尺寸时算法会停止(算法不允许在其他部分上形成零件,除非它是最后一部分,它是整个开始时的2D阵列).
  • 如果我在形成2d阵列​​之前没有指定零件尺寸,只需要指定零件数量并随意生成零件尺寸,这就会留下形成微小零件的可能性,这可能不是在那里,特别是当2D阵列非常大时.我目前的零件尺寸方法将零件尺寸限制在2D阵列总尺寸的10%到40%之间.如果有一些超级优雅的方法可以做到这一点,我可能没有指定零件尺寸 - 用户将拥有的唯一控件是二维阵列尺寸和零件数量.

其他想法:

  • 将部件形成完美对齐的正方形,然后在2D阵列上运行并随机允许每个部件侵入其他部件,将它们翘曲成随机形状.
  • 在网格上绘制蛇形线并填充创建的空间,可能使用这样的数学:http://mathworld.wolfram.com/PlaneDivisionbyLines.html

结论:
所以这就是问题:我是一名初学程序员,不确定我是否以正确的方式解决了这个问题.我可以创建一些更多的"补丁"方法,将碎片部分移动到一起,并允许形成部分"跳出"死胡同,如果它们卡在它们中,但它感觉凌乱.

你会如何解决这个问题?我可以用一些性感的数学来简化一些事情吗?

谢谢

language-agnostic algorithm grid multidimensional-array computational-geometry

8
推荐指数
1
解决办法
3123
查看次数

用于产品数据分析的最佳Python集群库

我有各种产品的字母数字产品代码集合.类似的产品在其代码中没有内在的相似性,即产品代码"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的集群功能/库吗?

python cluster-analysis

7
推荐指数
1
解决办法
1万
查看次数

来自tab10的matplotlib通用色彩映射

这个问题与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 color-scheme colors matplotlib

7
推荐指数
1
解决办法
4584
查看次数

字符串类型提示列表

在 python 中,如果我正在编写一个函数,这是输入提示字符串列表的最佳方式:

def sample_def(var:list[str]):

python var function python-typing

6
推荐指数
1
解决办法
1万
查看次数

使用自定义(大圆)距离的 Voronoi 图

我想在几对纬度/经度上创建一个 Voronoi 图,但想使用它们之间的大圆距离,而不是(不准确的)毕达哥拉斯距离。

我可以让 qhull/qvoronoi 或其他 Linux 程序执行此操作吗?

我考虑将点映射到 3D,让 qvoronoi 创建 3D Voronoi 图 [1],并将结果与​​单位球体相交,但我不确定这是否容易。

[1] 我意识到两个纬度/经度之间的 3D 距离(“穿过地球”路径)与大圆距离不同,但很容易证明这种变换保留了相对距离,这才是最重要的对于 Voronoi 图。

math voronoi qhull

5
推荐指数
1
解决办法
1003
查看次数

使用==比较numpy数组的规则是什么?

例如,尝试理解这些结果:

>>> 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 numpy numpy-broadcasting

5
推荐指数
1
解决办法
4919
查看次数