小编Chr*_*ser的帖子

在Windows上解决Python 3.4的安装问题

我最近尝试在我的系统上安装Python 3.4作为替代安装,试图在迁移代码之前熟悉自己.我的主要Python安装是2.7.6.

我尝试了Windows的64位安装程序,但它出现了一条错误消息

此Windows Installer程序包存在问题.作为设置的一部分运行的程序没有按预期完成.请联系您的支持人员或包装供应商.

在此之后安装回滚(从下面显示的点):

在此输入图像描述

我最终找到了下面发布的解决方案,并决定分享以防其他人遇到同样的问题.

pip windows64 python-3.4

34
推荐指数
5
解决办法
3万
查看次数

Python函数获取t统计量

我正在寻找一个Python函数(或编写我自己的函数,如果没有一个)来获取t统计量,以便在置信区间计算中使用.

我已经找到了表格,可以像这样给出各种概率/自由度的答案,但我希望能够针对任何给定的概率计算出这个.对于那些不熟悉这种自由度的人来说,样本-1中的数据点数(n)和顶部列标题的数字是概率(p),例如,如果使用0.05的双尾显着性水平,则使用0.05你正在查找用于计算95分置信度的t分数,如果你重复n次测试,结果将落在平均值+/-置信区间内.

我已经研究过在scipy.stats中使用各种函数,但是我看不到任何函数似乎允许我上面描述的简单输入.

Excel有一个简单的实现,例如获得1000的样本的t分数,我需要95%的信心我会使用:=TINV(0.05,999)得到分数~1.96

这是我到目前为止用于实现置信区间的代码,因为你可以看到我正在使用一种非常粗略的方法来获得目前的t分数(只是为perc_conf允许一些值并警告它不准确样本<1000):

# -*- coding: utf-8 -*-
from __future__ import division
import math

def mean(lst):
    # ? = 1/N ?(xi)
    return sum(lst) / float(len(lst))

def variance(lst):
    """
    Uses standard variance formula (sum of each (data point - mean) squared)
    all divided by number of data points
    """
    # ?² = 1/N ?((xi-?)²)
    mu = mean(lst)
    return 1.0/len(lst) * sum([(i-mu)**2 for i in lst])

def conf_int(lst, perc_conf=95):
    """
    Confidence interval - given a list …
Run Code Online (Sandbox Code Playgroud)

python statistics confidence-interval python-2.7

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

逗号是否在Javascript if语句中在语法上有效?

最近几天,我一直在帮朋友学习Javascript.这是他多年来的第一语言,他几乎没有记得,所以他几乎从头开始.他一直在做一个简单的教程,我一直在为他提供一些练习来帮助他练习.我给他的最近一次练习是(显然)经典的FizzBu​​zz问题.他通过一些帮助解决了这个问题,但在制定解决方案时他做了一些非常有趣的事情.他想出了以下代码:

for (var x = 1; x <= 100; x++) {
    if (x%3 == 0, x%5 != 0) {
        console.log("Fizz");
    }
    else if (x%3 != 0, x%5 == 0) {
        console.log("Buzz");
    }
    else if (x%3 == 0, x%5 == 0) {
        console.log("FizzBuzz");
    }
    else {
        console.log(x);
    }
}
Run Code Online (Sandbox Code Playgroud)

他不熟悉布尔比较运算符,因此他没有使用&&而是使用逗号.我的期望是它会崩溃并说一些关于语法错误的信息,但令我惊讶的是它最终运行良好并打印出一堆"Fizz"和"Buzz"行,没有"FizzBu​​zz"或数字.不用说,我很困惑,所以我做了一些实验.我的第一个测试是运行这个:

if (true, true) console.log('true, true');
if (true, false) console.log('true, false');
if (false, true) console.log('false, true');
if (false, false) console.log('false, false');
Run Code Online (Sandbox Code Playgroud)

这给了我两行输出:

'true, true'
'false, true'
Run Code Online (Sandbox Code Playgroud)

从那以后,我猜测所有逗号都是因为它只评估列表中的最后一个表达式.然后我尝试运行此代码:

for …
Run Code Online (Sandbox Code Playgroud)

javascript syntax

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

如何在Windows上安装.egg Python包(尝试使用easy_install不工作)

我正在尝试为我正在做的课程安装一个名为QSTK的软件包.该课程指向32位版本的安装包,但我安装了64位Python.我在Python包索引上找到了一个.egg文件.

它似乎有一个32位的exe,但只有64位的.egg.我下载了QSTK-0.2.6-py2.7.egg版本,并且到目前为止一直试图安装这个版本.

这是我尝试过的:

  1. 使用简单安装(从C:\ Python27\Lib\site-packages目录):

    Python easy_install -Z C:\Users\Prosserc\Downloads\QSTK-0.2.6-py2.7.egg
    
    Run Code Online (Sandbox Code Playgroud)

    这在我的site-packages目录中创建了一个QSTK-0.2.6-py2.7.egg目录,我可以打开并查找文件.但是,我试图从python shell导入QSTK并得到通常的"No module"命名..."导入错误.

  2. 我查找了一个setup.py文件,因为我之前使用过这些文件来安装软件包,但找不到一个.

  3. 我还查看了这个线程,其中提供了安装.egg文件的详细信息,但没有使用简单的安装,但无法弄清楚我需要对提供的脚本进行哪些更改,因为这是安装我已经拥有的特定包.

如果有人可以通过解释我如何正确安装此.egg文件或通过提供另一种格式的python 2.7 64位QSTK模块的链接来提供帮助,我们将不胜感激.

我已经成功安装了QSTK依赖的软件包(numpy,scipy,matplotlib,pandas,python-dateutil和scikit-learn).

python packages python-2.7 qstk

18
推荐指数
3
解决办法
8万
查看次数

你能在Python中定义递归类型提示吗?

我有一个 Python 类型的别名:

from typing import Tuple, Dict, Union

SelectedModelArgs = Dict[
    str,
    Union[
        str,
        float,
        Tuple[float, float],
        Dict[str, Union[str, float, Tuple[float, float]]],
    ],
]
Run Code Online (Sandbox Code Playgroud)

目前,这允许使用 str 到 str、float、float 元组或相同类型的嵌套字典的字典。有没有办法递归地定义它以允许任意嵌套?

例如

SelectedModelArgs = Dict[
    str,
    Union[
        str,
        float,
        Tuple[float, float],
        SelectedModelArgs,
    ],
]
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我收到 IDE 错误:

  • Pylance:“SelectedModelArgs”未定义
  • Mypy:现在无法解析“SelectedModelArgs”(可能是循环定义)

添加from __future__ import annotations到文件顶部并不能解决这些问题(就像在类定义中使用类名一样)。

我还尝试使用上面的代码示例,但将其嵌套"SelectedModelArgs"为字符串(如本答案中所述)。这可以解决 pylance 错误,但不能解决 mypy 错误。

python type-hinting python-3.x mypy python-typing

7
推荐指数
0
解决办法
94
查看次数

我的Python代码输出的说明

基本上它几乎适用于除了0.93之外我尝试过的几乎所有情况.然后我在while循环中添加了"print money"以查看每次循环后它正在做什么,这就是发生的事情:

Enter an amount less than a dollar: 0.93
0.68
0.43
0.18
0.08
0.03
0.02
0.01
3.81639164715e-17
-0.01
Your change is 3 quarters 1 dimes 1 nickels 4 pennies
Run Code Online (Sandbox Code Playgroud)

有人能解释一下到底是怎么回事吗?

money = input("Enter an amount less than a dollar: ")
quarter = 0
dime = 0
nickel = 0
penny = 0

while money > 0.00:
    if money >= 0.25:
        quarter = quarter + 1
        money = money - 0.25

    elif money >= 0.10:
        dime = dime+1
        money = …
Run Code Online (Sandbox Code Playgroud)

python floating-point

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