小编Nik*_*Nik的帖子

在numpy数组中查找模式的最有效方法

我有一个包含整数的2D数组(正数或负数).每行表示特定空间站点随时间的值,而每列表示给定时间内各种空间站点的值.

所以,如果数组如下:

1 3 4 2 2 7
5 2 2 1 4 1
3 3 2 2 1 1
Run Code Online (Sandbox Code Playgroud)

结果应该是

1 3 2 2 2 1
Run Code Online (Sandbox Code Playgroud)

请注意,当模式有多个值时,任何一个(随机选择)都可以设置为模式.

我可以一次迭代查找模式的列,但我希望numpy可能有一些内置函数来做到这一点.或者,如果有一个技巧可以有效地找到它而不循环.

python 2d numpy mode

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

访问集合的唯一元素

我有一个setPython,我从中根据条件逐个删除元素.当集合只剩下1个元素时,我需要返回该元素.如何从集合中访问此元素?

一个简化的例子:

S = set(range(5))
for i in range(4):
    S = S - {i}
# now S has only 1 element: 4
return ? # how should I access this element
# a lame way is the following
# for e in S:
#    return S
Run Code Online (Sandbox Code Playgroud)

python set

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

Python中的nargout

Python在MATLAB中是否有任何等效的nargout?如果我们想保持返回参数的数量灵活,我发现nargout是一种非常简洁的方法.有没有办法可以找出已经请求了多少输出参数?像下面的伪python代码:

def var_returns_func(a):
  """
  a is a 1D numpy array
  """
  if nargout==1: return a.sum()
  elif nargout==2: return a.sum(),a.std()
Run Code Online (Sandbox Code Playgroud)

因此,如果我将此函数称为mean = var_returns_func(someNumPyarray),则应返回单个值.但如果我把它称为mean,std = var_returns_func(someNumPyarray),它应该返回2个值.

是否有Pythonic方式这样做?还是一个黑客的方式?

python multiple-variable-return

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

范围值为伪彩色

我有一些浮点数(在Python中),范围从0到100.我想创建一个伪彩色图像,使颜色从绿色(对应于0)变为红色(100).这类似于matplotlib的pcolor.但是,我不想使用pcolor.

是否有像pseudocolorForValue(val,(minval,maxval))这样的函数,它返回对应于'val'的伪颜色值的RGB三元组?此外,此功能是否具有灵活性,可以选择是显示从绿色到红色还是从红色到绿色的颜色?

谢谢,尼克

python floating-point gradient colors

12
推荐指数
3
解决办法
6204
查看次数

Python statsmodels OLS:如何将学习的模型保存到文件中

我想学习使用Python的statsmodels库中的普通最小二乘模型,描述在这里.

sm.OLS.fit()返回学习的模型.有没有办法将其保存到文件并重新加载?我的训练数据很大,学习模型大约需要半分钟.所以我想知道OLS模型中是否存在任何保存/加载功能.

repr()在模型对象上尝试了该方法,但它没有返回任何有用的信息.

python least-squares statsmodels

11
推荐指数
2
解决办法
9014
查看次数

特定于环境的ebextensions命令

我有一个spring-boot应用程序,我需要指定石墨服务器和端口(发送指标).要做到这一点,我必须安装和配置statsd.我这样做是使用该ebextensions文件.

commands:
  01_nodejs_install:
    command: sudo yum -y install nodejs npm --enablerepo=epel
    ignoreErrors: true

  02_mkdir_statsd:
    command: mkdir /home/ec2-user/statsd
    ignoreErrors: true

  03_fetch_statsd:
    command: git clone https://github.com/etsy/statsd.git /home/ec2-user/statsd
    ignoreErrors: true

  04_change_example_config:
    command: "cat exampleConfig.js | sed 's/2003/<graphite-port>/g' | sed 's/graphite.example.com/<my-graphite-server>/g' > config.js"
    cwd: /home/ec2-user/statsd

  05_run_statsd:
    command: setsid node stats.js config.js >/dev/null 2>&1 < /dev/null &
    cwd: /home/ec2-user/statsd
Run Code Online (Sandbox Code Playgroud)

这种配置的问题是我可以在这里为所有环境仅指定1个石墨服务器.

所以我决定将命令04和05移入container_commands.我想定义叫做环境变量的ENV_NAME 使用魔豆控制台/ UI,并将其设置为dev,qaprod根据环境.然后我可以使用test选项container_commands仅基于此特定环境运行04和05命令ENV_NAME.

所以我的问题是 - …

java environment-variables amazon-web-services amazon-elastic-beanstalk ebextensions

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

numpy二维数组的块平均值

我想在NumPy中找到2D数组的块平均值.为简单起见,我们假设数组如下:

array([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11],
       [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])
Run Code Online (Sandbox Code Playgroud)

我想将这个数组分成3个大小为2x4的块,然后找到所有三个块的平均值(这样平均值的形状是2x4.第一个块由前4列组成,下一个由下一个列组成4列等等.所以我的块是:

array([[0, 1, 2, 3],
       [12, 13, 14, 15]])

array([[ 4,  5,  6,  7],
       [16, 17, 18, 19]])

array([[ 8,  9, 10, 11],
       [20, 21, 22, 23]])
Run Code Online (Sandbox Code Playgroud)

我可以使用循环来做到这一点但我觉得最好先将这个数组转换成3D数组reshape,然后mean沿着第三个轴使用3D数组上的方法.这可能类似于这个问题.

如果有人能提供给我,我将不胜感激:

1).如果存在这样的技巧,那么执行块的适当Pythonic命令意味着甚至不转换为3D.

2).如果没有合适的Pythonic命令来进行2D到3D转换.

3).通过使用循环或使用上述命令来了解它是否更有效(在空间方面).

python numpy matrix mean reshape

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

卡夫卡流加入

我有2个卡夫卡主题 - recommendationsclicks.第一个主题具有由唯一ID(称为recommendationsId)键控的推荐对象.每个产品都有一个用户可以单击的URL.

clicks主题通过点击推荐给用户的产品URL来生成消息.它已被设置为这些点击消息也被键入recommendationId.

注意

  1. 建议和点击之间的关系是一对多的.建议可能会导致多次点击,但点击始终与单个推荐相关联.

  2. 每个click对象都有一个相应的推荐对象.

  3. 点击对象的时间戳晚于推荐对象.

  4. 推荐和相应点击之间的差距可能是几秒到几天(比如最多7天).

我的目标是使用Kafka stream join加入这两个主题.我不清楚的是我是否应该使用KStream x KStream连接或KStream x KTable连接.

我通过表KStream x KTable连接clicks流实现了连接recommendations.但是,如果建议是加入者启动之前生成的,并且在加入者启动后点击到达,则无法看到任何加入的点击建议对.

我使用正确的加入吗?我应该使用KStream x KStream加入吗?如果是这样,为了能够在过去7天内加入带有推荐的点击,我应该将窗口大小设置为7天吗?在这种情况下,我还需要设置"保留"期吗?

我执行KStream x KTable连接的代码如下.请注意,我定义的类RecommendationsClick及其相应的SERDE.点击消息只是简单的String(url).此URL String与Recommendationsobject连接以创建发送到的Click对象jointTopic.

public static void main(String[] args){
    if(args.length!=4){
      throw new RuntimeException("Expected 3 params: bootstraplist clickTopic recsTopic jointTopic");
    }

    final …
Run Code Online (Sandbox Code Playgroud)

java join java-8 apache-kafka-streams

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

多边形交叉点错误| Python身材匀称

我一直在尝试调试此问题,但无法执行此操作.我试图找到两个Polygon对象的交集.它大部分时间都有效,但对于以下情况,它会引发以下异常:

P1 area: 13.125721955
P2 area: 1.0
Traceback (most recent call last):
File "geom2d.py", line 235, in <module>
print p1.intersection(p2)
File "/usr/local/lib/python2.7/dist-packages/shapely/geometry/base.py", line 334, in     intersection
return geom_factory(self.impl['intersection'](self, other))
  File "/usr/local/lib/python2.7/dist-packages/shapely/topology.py", line 47, in __call__
    "The operation '%s' produced a null geometry. Likely cause is invalidity of the geometry %s" % (self.fn.__name__, repr(this)))
shapely.geos.TopologicalError: The operation 'GEOSIntersection_r' produced a null     geometry. Likely cause is invalidity of the geometry <shapely.geometry.polygon.Polygon      object at 0x8e5ad6c>
Run Code Online (Sandbox Code Playgroud)

代码如下.

from shapely.geometry import Point,Polygon,MultiPolygon

poly1 …
Run Code Online (Sandbox Code Playgroud)

python intersection exception polygon shapely

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

Java Lombok单元测试以获取吸气剂

我正在lombokJava项目中使用@Getter@Setter注释对象的私有成员变量。我们知道这些获取器和设置器将按预期工作。因此,我们实际上并不需要对它们进行单元测试。但是,这降低了code coverage单元测试中的代码。

有没有一种方法可以告诉单元测试引擎不需要测试由龙目岛生成的吸气剂和吸气剂?

java unit-testing code-coverage lombok

6
推荐指数
2
解决办法
7674
查看次数