相关疑难解决方法(0)

pydoc支持python元数据,例如__version__ ='0.1'

我甚至不确定这些东西是正式调用的,但是,Python有元数据,通常位于模块文件的顶部,例如__version__ = '0.1'.

如何找到PyDoc支持的所有列表?

python pydoc

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

如何有效地计算两个词典的内在产品

假设我使用字典表示一个特征向量(为什么?因为我知道这些特征是稀疏的,但稍后会详细介绍).

我该如何实现两个这样的词典的内在产品(表示为A,B)

我尝试了天真的方法:

for k in A:
  if k in B:
    sum += A[k] * B[k]
Run Code Online (Sandbox Code Playgroud)

但事实证明是缓慢的.

更多细节:

  • 我正在使用字典来表示功能,因为

    1. 功能键是字符串
    2. 有大约20K可能的键
    3. 每个向量都是稀疏的(例如,大约1000个非零元素).
  • 我真的很想计算N = 2000个不同字典(即它们的线性内核)的成对内积.

python linear-algebra

7
推荐指数
3
解决办法
5424
查看次数

命名元组的名称和引用可以不同吗?

阅读fmark回答问题的答案什么是Python中的"命名元组"?我看到那里给出的示例具有相同的名称和引用,即该单词Point在以下语句中出现两次:

Point = namedtuple('Point', 'x y')

所以我去了原始参考:
https ://docs.python.org/2/library/collections.html#collections.namedtuple
在这里我又找到了两个例子:

EmployeeRecord = namedtuple('EmployeeRecord', 'name, age, title, department, paygrade')
Color = namedtuple('Color', 'red green blue')
Run Code Online (Sandbox Code Playgroud)

理想情况下,Python中不会重复单词.例如,整行(对于Point示例)可以替换为以下内容:

namedtuple('Point', 'x y')
Run Code Online (Sandbox Code Playgroud)

要么

Point = namedtuple('x y')
Run Code Online (Sandbox Code Playgroud)

当然,这是假设命名元组必须具有相同的名称和引用.所以我的问题是:什么时候它是可取的(如果允许的话),一个命名的元组应该有不同的名称和引用?我还没有看到一个例子.

python tuples namedtuple

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

Python 中用于存储键值对的类与字典

我需要定义一些键值参数来配置类的行为。我的要求有两个:

  • 能够以编程方式处理它们
  • 能够进行更具体的配置来覆盖某些值。

第一个要求的自然方法是使用 a dict(这样我就可以用循环遍历键、值或项目for),但对于第二个要求,使用类层次结构并让属性查找机制来执行以下操作似乎更合适工作(另外我还得到了其他好处,比如能够使用某些值的属性)。

有没有办法两全其美?


阅读评论后,它不需要是可变的(我不会更改已创建实例的值),它只是用于静态配置。但我可能需要在更具体的实例中添加新值。

我想最后我可以只使用dict.copy+dict.update来表示特定的实例(我可以在没有属性的情况下生活)。

python inheritance dictionary class

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

ML的数据分离

我为Machine Learning项目导入了一个数据集.我需要在我的第一个输入图层中的每个"神经元"包含一个数字数据.但是,我一直无法做到这一点.这是我的代码:

import math
import numpy as np
import pandas as pd; v = pd.read_csv('atestred.csv', 
error_bad_lines=False).values
rw = 1
print(v)
for x in range(0,10):
    rw += 1
    s = (v[rw])
list(s)
#s is one row of the dataset 
print(s)#Just a debug.
myvar = s
class l1neuron(object):
    def gi():
        for n in range(0, len(s)):
            x = (s[n])
            print(x)#Just another debug 
n11 = l1neuron
n11.gi()
Run Code Online (Sandbox Code Playgroud)

理想情况下我想要的是这样的变体,其中代码为从数据中提取的每个新行创建一个新变量(我在第一个循环中尝试做的)以及从每行提取的每个数据的新变量(我尝试在课堂和第二个循环中做什么).

如果我完全忽略了我的代码,那么请随意指出我正确的方向进行完整的重写.

以下是我的数据集的前几行:

fixed acidity;"volatile acidity";"citric acid";"residual sugar";"chlorides";"free sulfur dioxide";"total sulfur dioxide";"density";"pH";"sulphates";"alcohol";"quality"
7.4;0.7;0;1.9;0.076;11;34;0.9978;3.51;0.56;9.4;5
7.8;0.88;0;2.6;0.098;25;67;0.9968;3.2;0.68;9.8;5
7.8;0.76;0.04;2.3;0.092;15;54;0.997;3.26;0.65;9.8;5
Run Code Online (Sandbox Code Playgroud)

提前致谢.

python numpy python-3.x pandas

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

在python中覆盖{}

我想创建一个dict int,你可以这样访问:

>>> my_dict["property'] = 3
>>> my_dict.property
3
Run Code Online (Sandbox Code Playgroud)

所以我做了这个:

class DictAsMember(dict):
    def __getattr__(self, name):
        return self[name]
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果你有嵌套dicts它不起作用,例如:

my_dict = DictAsMember()
my_dict["property"] = {'sub': 1}
Run Code Online (Sandbox Code Playgroud)

我可以访问my_dict.property,但逻辑上我不能做my_dict.property.sub因为属性是一个默认的dict,所以我想要做的就是覆盖默认的dict,所以你可以使用{}.

这可能吗?

python dictionary overwrite

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

Python:打印所有命名元组

我有以下代码:

from collections import namedtuple

Test = namedtuple('Test', ['number_A', 'number_B'])

test_1 = Test(number_A=1, number_B=2)
test_2 = Test(number_A=3, number_B=4)
test_3 = Test(number_A=5, number_B=6)
Run Code Online (Sandbox Code Playgroud)

我的问题是如何打印所有的命名元组,例如:

print (Test.number_A)
Run Code Online (Sandbox Code Playgroud)

我希望看到这样的结果:

1
3
5
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢..

python namedtuple

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

namedtuple 需要 3 个参数?

尝试在 Python3 Jupyter notebook 中运行此代码:

t = namedtuple('a', 'b')
a = [1,0,1]
b = [1,1,1]
Out, In = np.asanyarray(a), np.asanyarray(b)
t(Out.shape[0], *In.shape)
Run Code Online (Sandbox Code Playgroud)

返回错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-151-7955ff03a60d> in <module>()
      3 b = [1,1,1]
      4 Out, In = np.asanyarray(a), np.asanyarray(b)
----> 5 t(Out.shape[0], *In.shape)

TypeError: __new__() takes 2 positional arguments but 3 were given
Run Code Online (Sandbox Code Playgroud)

可以用两个参数创建namedtuple吗?

更新 :

为什么这不会导致类似的问题:

t = namedtuple('ps', 'Out In S')

a = np.asanyarray([[1]])
b  = np.asanyarray([[1]])

d = t(a.shape[0], *b.shape)

d
Run Code Online (Sandbox Code Playgroud)

计算:

ps(Out=1, …
Run Code Online (Sandbox Code Playgroud)

python namedtuple python-3.x

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

在命名元组中没有返回值

当我尝试print Link.votes我得到<property object at 0x1027b4f18>的时候,我期待为"票"(在下面的例子中100)返回的值.有人可以让我知道我做错了什么吗?

from collections import namedtuple

Link = namedtuple('Link', ['id', 'country_id', 'date', 'votes', 'url'])
Link(0, "US", 111105, 100,"http://www.google.com")
print Link.votes
Run Code Online (Sandbox Code Playgroud)

python

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