小编mrK*_*ley的帖子

使用JSON保留Python元组

我对此仍然有点新意,所以我可能不知道所有传统的术语:

使用JSON编码时是否可以保留Python元组?现在json.loads(json.dumps(tuple))给我一个清单.我不想将我的元组转换为列表,但我想使用JSON.那么,有选择吗?

原因是:我正在创建一个使用多维数组的应用程序,并不总是相同的形状.我有一些类方法使用递归来探测数组并将端点转换为字符串或int.我最近意识到(基于我的递归如何工作)我可以使用元组来防止更深入的数组递归搜索(Python rawks).在我知道我肯定不需要深入研究数据结构的情况下,这可能会派上用场.

python json tuples

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

我如何阅读numpy来源?

我自己在Python 3.3上构建它,但我不能为我的生活找到类的定义numpy.array().我看了整个代码甚至找到了核心C文件,但dang数组类在哪里?

任何人都可以告诉我要查看的目录,或者如何从python shell中找到它?

python numpy class dir

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

Matlab类方法:参数太多

我发现了一些相关的问题,但在那里找不到答案.

我正在编写一个简单的小MATLAB类,以便在MATLAB中学习OOP语法.我对Python非常熟悉,并试图使用MATLAB.这是定义:

classdef Car < handle


    properties
        speed = [0,0]   %x,y velocity
        position = [0,0]
        running = false

    end

    methods
        function obj = Car(pos, spd)
            obj.position = pos;
            obj.speed = spd;
        end

        function accelerate(obj,x,y)    % Add to speed
            obj.speed = obj.speed + [x,y]
        end

        function position = getPosition(obj)
            position = obj.position
        end

        function start(obj)
            obj.running = true
        end

        function stop(obj)
            obj.running = false
        end
    end

end
Run Code Online (Sandbox Code Playgroud)

这当然没有完成,但后来我使用一个小脚本来弄乱对象:

foo = Car([1,1],[0,2])
foo.start
foo.accelerate(2,3)
Run Code Online (Sandbox Code Playgroud)

实例化工作,但我调用的任何方法都会抛出错误.foo.start,例如:

Error using Car/start
Too many input arguments. …
Run Code Online (Sandbox Code Playgroud)

oop methods matlab arguments class

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

python3中使用readline自动完成

我试图在这里使用这个巧妙的技巧来处理 csv 文件。不过,我似乎无法在 python3 中使用自动完成功能。我不知道从哪里开始 readline。文档有点密集。我的猜测是我错过了raw_input()Python 2 中没有的东西。

我已将我的尝试粘贴在下面。当我在 shell 中并点击选项卡时,我只会看到大选项卡并且没有自动完成操作。我的意图是下面的输入语句在 strings 上自动完成['10/10/2013', '10/13/2013', '10/14/2013', '10/15/2013']

我缺少什么?

import readline

class MyCompleter(object):  # Custom completer

    def __init__(self, options):
        self.options = sorted(options)

    def complete(self, text, state):
        if state == 0:  # on first trigger, build possible matches
            if text:  # cache matches (entries that start with entered text)
                self.matches = [s for s in self.options
                                    if s and s.startswith(text)]
            else:  # no text entered, all matches …
Run Code Online (Sandbox Code Playgroud)

python autocomplete readline python-3.x

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

如何使用numpy数组加速分形生成?

这是我用牛顿方法制作分形的一个小脚本.

import numpy as np
import matplotlib.pyplot as plt

f = np.poly1d([1,0,0,-1]) # x^3 - 1
fp = np.polyder(f)

def newton(i, guess):
    if abs(f(guess)) > .00001:
        return newton(i+1, guess - f(guess)/fp(guess))
    else:
        return i

pic = []
for y in np.linspace(-10,10, 1000):
    pic.append( [newton(0,x+y*1j) for x in np.linspace(-10,10,1000)] )

plt.imshow(pic)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我正在使用numpy数组,但是仍然循环遍历1000×1000 linspaces的每个元素以应用该newton()函数,该函数作用于单个猜测而不是整个数组.

我的问题是:我如何改变我的方法以更好地利用numpy数组的优势?

PS:如果你想在不等太久的情况下尝试代码,最好使用100×100.

额外背景:
请参阅牛顿方法以查找多项式的零.
分形的基本思想是测试复平面中的猜测并计算迭代次数以收敛到零.这就是递归的内容newton(),最终会返回步数.复平面中的猜测表示图像中的像素,通过收敛的步数来着色.从一个简单的算法,你得到这些美丽的分形.

python numpy

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

如何在 Bash 中获取文件名的通配符部分

这个问题可能已经有人问过了,但我不知道如何表达好。我是 bash 脚本的新手...

假设我在一个目录中有一堆文件,名称如下:

file1_pre.ext
file2_pre.ext
file3_pre.ext
different_tmp.ext
Run Code Online (Sandbox Code Playgroud)

我可以使用通配符来过滤感兴趣的文件:

for f in *_pre.ext
do
   echo $f
done
Run Code Online (Sandbox Code Playgroud)

但我怎么解析/提取前缀,这样我可以得到的字符串file1file2等等作为文件名别的东西用?

bash

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

git clone,忽略文件

我想克隆一个包含巨大 .exe 文件的 GitHub 存储库。(为什么?!)我对 .exe 文件的使用为零,它比其他所有文件的总和还要大得多。克隆文件时有没有办法忽略该文件?

我的猜测是,我会更幸运地要求作者制作一个无 exe 的分支!希望有一些不错的方法可以解决这个问题。

git github

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

在重载类方法时引用self

如果'重载'不是正确的术语,请原谅我...

我想做这样的事情:

class Length:

    def __init__(self, length = 0):
        self._length = length

    def twice(self, length = self._length):
        return length*2
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我试图self._length在论证中引用twice().Python虽然不喜欢这个.我得到NameError: name 'self' is not defined.

有没有一种很好的方法来分配这样的默认值并得到我想要的东西?

python default self

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

误导性的Python错误消息

如果我有一个文件 python_error_msg.py

x = [e for e in range(x)
x+=1
Run Code Online (Sandbox Code Playgroud)

$ python3 python_error_msg.py
Run Code Online (Sandbox Code Playgroud)

缺少的括号会出现以下错误:

  File "python_error_msg.py", line 2
    x+=1
    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我的错误在于忘记]列表理解.这是可以做得更好的东西,还是Python语法如何工作的深层次问题?

另外,在哪里可以查看 代码库 以了解错误报告在Python中的工作原理?

python cpython syntax-error

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

执行后将变量保留在内存中

在Matlab中,当您运行脚本时,变量会在内存中保留,并且您可以在shell中进行访问.我觉得这对调试和探索非常有用.我试图在Python中实现类似的效果.也许这甚至不可能.

例如,假设我有一个名为的文件 script.py

#!/usr/bin/env python

def foo(n):
    return 2*n

x = 5
y = foo(5)
Run Code Online (Sandbox Code Playgroud)

我想能够运行这一点,并有访问xy在Python外壳.我想>>> import script这使我获得foo通过script.foo(),但我想访问xy太.

>>> from script import * 也没有完成工作.

我如何让python将这些(在内存中)留在python shell中?

python shell

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