小编osk*_*i86的帖子

找到Python中活着人数最多的年份

鉴于人用自己的出生和结束年(所有之间的名单19002000),寻找当年数最多的人活着.

这是我有点蛮力的解决方案:

def most_populated(population, single=True):
    years = dict()
    for person in population:
        for year in xrange(person[0], person[1]):
            if year in years:
                years[year] += 1
            else:
                years[year] = 0
    return max(years, key=years.get) if single else \
           [key for key, val in years.iteritems() if val == max(years.values())]

print most_populated([(1920, 1939), (1911, 1944),
                      (1920, 1955), (1938, 1939)])
print most_populated([(1920, 1939), (1911, 1944),
                      (1920, 1955), (1938, 1939), (1937, 1940)], False)
Run Code Online (Sandbox Code Playgroud)

我正试图找到一种更有效的方法来解决这个问题Python.两者 - readabilityefficiency计数.此外,由于某些原因,我的代码将不会打印[1938, 1939] …

python algorithm

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

根据N大小,选择哪种算法进行巨大的整数乘法

在我的空闲时间,我正在准备面试问题,例如:实现乘以数字数组的数字.很显然,我不得不把它从划痕像语言写PythonJava,所以像"使用GMP"的答案是不能接受的(这里所说:了解Schönhage-Strassen的算法(巨大的整数乘法)).

对于range那两个数字的大小(即数字位数),我应该选择

  1. 学校成绩算法
  2. Karatsuba算法
  3. TOOM库克
  4. Schönhage-Strassen算法?

Schönhage-Strassen O(n log n log log n)总是一个很好的解决方案吗?维基百科中提到,Schönhage-Strassen的建议超越的数字2^2^152^2^17.怎么办时,一个号码是可笑的巨大(例如10,000,以40,000十进制数字),但第二只包含几个数字的?

所有这4种算法是否容易并行化?

algorithm

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

如何删除Anaconda的键盘快捷方式

我刚刚在Windows 8.1上安装了Anaconda SciPy发行版(https://store.continuum.io/cshop/anaconda/).每当我按下右侧的Alt +按钮组合时,Anaconda控制台就会显示出来.为什么在地球上,他们将分配等快捷负责的一个字符(波兰程序员键盘).您是否知道在不卸载Anaconda的情况下移除此键盘快捷键的解决方案?也许这是一个背景过程,听取这个关键的新闻.谢谢您的帮助!

windows keyboard-shortcuts windows-8 anaconda

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

在 Tensorflow 2.0 中通过前辈增加张量的每个元素

我是tensorflow 2.0 的新手,除了从样板代码设计和训练一些人工神经网络之外,并没有做太多事情。我正在尝试为新人解决新 tensorflow 的练习。我创建了一些代码,但它不起作用。以下是问题定义


假设我们有M形状为 的有理数张量(a, b, c)和标量p ? (0, 1)(记忆因子),让我们创建一个函数,该函数将返回N形状为 的张量(a, b, c)N沿c轴移动的张量的每个元素都应增加前身乘以 的值p

假设我们有张量:

T = [x1, x2, x3, x4]
Run Code Online (Sandbox Code Playgroud)

在 的形状中(1, 1, 4),我们想得到向量:

[x1, x2+x1·p, x3+(x2+x1·p)·p, x4+(x3+(x2+x1·p)·p)*p] 
Run Code Online (Sandbox Code Playgroud)

解决方案应该在Tensorflow 2.0 中创建,并且应该专注于在 CPU 上提供最短的执行时间。创建的图形应该允许有效地计算 tensorM和 value 的导数p


这是我创建到现在代码

import tensorflow as tf

@tf.function
def …
Run Code Online (Sandbox Code Playgroud)

python tensorflow tensor tensorflow2.0

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

用更新的版本替换现有的RPubs文档

replace/overwrite我的降价文件是否可以在RPubs

r-markdown

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

Python按位和多个数字,比迭代按位运算符更快?

我正在寻找一种最快的方式(O(n^2)不可接受)来应用AND超过2个数字的运算符Python.

有两种情况:
a)在输入上我们有M和N之间的数字
b)可以有一组任何自然数

目前我的代码使用& operator一个循环,它总是计算一个结果位(尽管我们知道,如果我们知道,那么0下一个和所有下一个结果位将始终是0).我的一个想法是计算每列的位数,对于给定的列,当存在时停止计算0,因为结果位将是0.

示例(包含在下面的测试代码中)

Bitwise难题在一个例子中解释

现有(迭代),相当慢(O(n^2))代码:

def solution(M, N):
    result = M
    for x in xrange(M, N):
        result &= x
    return result


def solution_sets(N):
    result = N[0]
    for x in N:
        result &= x
    return result


print solution(5, 7)  # 4
print solution(64, 128)  # 64
print solution(44, 55)  # 32
print solution_sets([60, 13, 12, 21])
Run Code Online (Sandbox Code Playgroud)

如果该解决方案可扩展到例如XOR运算符将是好的.

我想问一些关于如何在Python语言中开始实现它并最大化性能的想法. …

python algorithm

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

如何更改 RStudio 服务器中的会话挂起时间

RSutdio-server 安装行为如下:

  1. 每当照常工作时,让 Web 客户端无人看管一段时间(不确定,但可能大约 1-2 小时?)
  2. 暂停后,单击任何内容以获取通知“正在恢复 R 会话...”
  3. /usr/lib/rstudio-server/bin/rsession -u 用户名从 ~120MB 恢复到合适的大小(通常不小于 11GB,这是我离开的方式),但它比在我的桌面上读取 CSV 慢 5 倍。
  4. 成功后,RStudio 通常会响应

RStudio 服务器休眠后如何更改时间?

另外,我不明白为什么与我的笔记本电脑相比,在我的大学服务器上读取大 CSV 需要慢 3​​ 倍。它们有 24 个 Intel Xeon 内核和 256GB RAM。我有 i5 和 12GB 内存。

谢谢!

rstudio-server

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

将数值向量中的 NA 替换为从邻居计算出的值

我正在尝试编写一个replacena()函数,它将给定数值向量中的每个缺失值替换为其前后元素的算术平均值

例如,如果c(5, NA, 6, 2, 3, 5, 6, 4, NA, 2, NA, 5)给定,则结果应该是c(5, 5.5, 6, 2, 3, 5, 6, 4, 3, 2, 3.5, 5)

我正在寻找一些优雅的解决方案,可能带有应用函数(没有控制流结构),但我还没有想出任何有效的解决方案。我不太确定如何访问 lambda function(x) 中的上一个和下一个元素。

replacena <- function(l)
{
   stopifnot(is.numeric(l))
   sapply(l[is.na(l)], function(x){ l[x] <- mean( c(l[-1:0], l[0:1]) ) } )
}
Run Code Online (Sandbox Code Playgroud)

函数输入:

replacena(c(5, NA, 6, 2, 3, 5, 6, 4, NA, 2, NA, 5))
Run Code Online (Sandbox Code Playgroud)

预期产出

c(5, 5.5, 6, 2, 3, 5, 6, 4, 3, 2, 3.5, 5)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

r na

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

八度函数应该返回一个向量,而不是'ans'

我试图了解如何在Octave函数中返回值.我写了一个函数,它返回多个变量,即[error, accuracy, precision, npv, recall, F1_score].

我正在尝试实现的是将每个 结果变量返回到控制台而不是标准ans(它似乎总是第一个变量).

所以这很好用:

>> [error, accuracy, precision, npv, recall, F1_score] = describeConfMatrix([546, 0;314, 0])
error =  0.36512
accuracy =  0.63488
precision =  0.63488
npv = NA
recall =  1
F1_score =  0.77667
Run Code Online (Sandbox Code Playgroud)

但这会产生'ans':

>> z = describeConfMatrix([546, 0;314, 0])
z =  0.36512
>> describeConfMatrix([546, 0;314, 0])
ans =  0.36512
Run Code Online (Sandbox Code Playgroud)

虽然我希望看到整个返回变量列表.

我也想让这个工作(断言用于测试函数):

m = [546, 0;314, 0];
ans = [0.36512, 0.63488, 0.63488, NA, 1, 0.77667];
assert(isequal(describeConfMatrix(m),ans))
Run Code Online (Sandbox Code Playgroud)

非常感谢Matlab新手! …

matlab octave

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

R ggplot2 热图,使用自定义范围强制离散比例,向地图添加网格

我在热图下方创建

热图

为此,我使用了此代码:

library(ggplot2)
library(reshape2)

winners_min_expd0 <- matrix(c(NA, 2, 2, 3, NA, 3, 2, 2, NA), nrow=3, ncol=3, byrow = T)
colnames(winners_min_expd0) <- c("homophily","heterophily","preferential")
rownames(winners_min_expd0) <- c("homophily","heterophily","preferential")
melted_min_expd0 <- melt(winners_min_expd0)
colnames(melted_min_expd0) <- c("winning", "looses", "times")
p_min_expd0 <- ggplot(melted_min_expd0, aes(looses, winning)) +
   geom_tile(aes(fill = times), colour = "white") +
   scale_fill_gradient(low = "white", high = "red") +
   ggtitle("Min function, exp decay off") +
   scale_y_discrete(limits=c("preferential", "heterophily", "homophily")) +
   xlab("(x) looses against (y)") + ylab("(y) winning over (x)")
p_min_expd0
Run Code Online (Sandbox Code Playgroud)

我想要:

  • 重新调整“时间”栏到范围<0:5>,我知道没有{0,1,4,5}值,但我想要这个范围 …

r ggplot2

0
推荐指数
1
解决办法
4110
查看次数