小编Rob*_*ark的帖子

如何创建动态数组

据我所知,listPython中的类型是一个动态指针数组,当项目被附加到它时会增加它的容量.NumPy中的数组使用连续的内存区域来保存数组的所有数据.

是否有任何类型可以动态增加其作为列表的容量,并将值存储为NumPy数组?类似于C#中的List.如果类型具有与NumPy数组相同的接口,那就太棒了.

我可以创建一个包含NumPy数组的类,并在它完整时调整此数组的大小,例如:

class DynamicArray(object):
    def __init__(self):
        self._data = np.zeros(100)
        self._size = 0

    def get_data(self):
        return self._data[:self._size]

    def append(self, value):
        if len(self._data) == self._size:
            self._data = np.resize(self._data, int(len(self._data)*1.25))
        self._data[self._size] = value
        self._size += 1
Run Code Online (Sandbox Code Playgroud)

但DynamicArray不能用作NumPy数组,我认为在np.resize()之前get_data()返回的所有视图都将保留旧数组.

编辑:数组模块中的数组类型是动态数组.以下程序测试列表和数组的增加因子:

from array import array
import time
import numpy as np
import pylab as pl

def test_time(func):
    arrs = [func() for i in xrange(2000)]
    t = []
    for i in xrange(2000):
        start = time.clock()
        for a in arrs:
            a.append(i)
        t.append(time.clock()-start)
    return np.array(t)

t_list …
Run Code Online (Sandbox Code Playgroud)

python numpy list

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

'primaryjoin'和'secondaryjoin'如何在SQLAlchemy中为多对多关系工作?

Flask Mega教程中理解一些Flask-SQLAlchemy的东西有些困难.这是代码:

followers = db.Table('followers',
    db.Column('follower_id', db.Integer, db.ForeignKey('user.id')),
    db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))
)

class User(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    nickname = db.Column(db.String(64), unique = True)
    email = db.Column(db.String(120), index = True, unique = True)
    role = db.Column(db.SmallInteger, default = ROLE_USER)
    posts = db.relationship('Post', backref = 'author', lazy = 'dynamic')
    about_me = db.Column(db.String(140))
    last_seen = db.Column(db.DateTime)
    followed = db.relationship('User', 
        secondary = followers, 
        primaryjoin = (followers.c.follower_id == id), 
        secondaryjoin = (followers.c.followed_id == id), 
        backref = db.backref('followers', lazy = 'dynamic'), …
Run Code Online (Sandbox Code Playgroud)

many-to-many sqlalchemy flask flask-sqlalchemy

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

Python比较运算符从左到右链接/分组?

运算符优先级的Python文档说明:

同一个框组中的操作员从左到右(除了比较,包括测试,它们都具有相同的优先级和从左到右的链 - 参见比较部分......)

这是什么意思?特别:

  1. "从同一个盒子组中的操作员从左到右(除了比较......)" - 做比较不是从左到右分组?

  2. 如果比较不是从左到右分组,那么他们做了什么呢?他们"链"而不是"群体"吗?

  3. 如果比较"链"而不是"组","链接"和"分组"之间有什么区别?

  4. 什么样的例子可以证明比较运算符从左到右而不是从右到左链接?

python comparison operator-precedence associativity

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

在开发容器中运行 VSCode 时如何打开本地终端?

我正在VSCode 容器内使用 VSCode 编写代码。

我可以在开发容器内打开终端,但我不知道如何在本地计算机中打开(VSCode 集成)终端。

我当然可以打开一个单独的终端应用程序,例如 iTerm2,但使用 VSCode 的集成终端面板要方便得多。是否可以使用 VSCode 开发容器打开本地终端?

visual-studio-code docker-container vscode-remote

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

.gitignore通配符无法正常工作?("LIVE-*"模式与"LIVE-vhost"文件名不匹配)

速度超快.这是我的.gitignore(在我的回购的根级别

# Makefile stuff
LIVE-* 
.install-post-all
Run Code Online (Sandbox Code Playgroud)

当我这样做时,LIVE-*位不起作用:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   pm-h8/etc/apache2/conf.d/LIVE-vhost
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

git gitignore

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

仅限django prefetch_related id

我正在尝试优化我的查询,但prefetch_related坚持加入表并选择所有字段,即使我只需要关系表中的id列表.

查询

您可以忽略第4个查询.这与问题无关.

相关代码:

class Contact(models.Model):
    ...
    Groups = models.ManyToManyField(ContactGroup, related_name='contacts')
    ...

queryset = Contact.objects.all().prefetch_related('Groups')
Run Code Online (Sandbox Code Playgroud)

django django-models django-queryset

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

挂载docker主机卷但覆盖容器的内容

有几篇文章对于理解Docker的卷和数据管理非常有帮助.这两个特别优秀:

但是,我不确定是否要讨论我要找的内容.这是我的理解:

  1. 运行docker run -v /host/something:/container/something主机文件时,将覆盖(但不覆盖)指定位置的容器文件.容器将无法再访问该位置的先前文件,而只能访问该位置的主机文件.
  2. 在Dockerfile中定义卷时,其他容器可以共享图像/容器创建的内容.
  3. 主机也可以查看/修改Dockerfile卷,但只能用在发现真正的挂载点后,码头工人巡视.(通常在某处/var/lib/docker/vfs/dir/cde167197ccc3e138a14f1a4f7c....).但是,当Docker必须在Virtualbox VM中运行时,这很麻烦.

我的问题很简单.如何反转叠加层以便在装入卷时容器文件优先于我的主机文件?

我想指定一个可以轻松访问容器文件系统的挂载点.但似乎没有人问这个问题.我知道我可以使用数据容器,或者我可以使用docker inspect来查找mountpoint,但在这种情况下,这两种解决方案都不是一个好的解决方案.

containers image volume docker dockerfile

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

Vim - 帮助不适用于NERDtree

我从http://www.vim.org/scripts/script.php?script_id=1658下载并手动安装了NERDTree

@hits ?  .vim rvm:(-ruby-1.9.2)  ls -laR
.:
total 28
drwxr-xr-x  6 hitsu hitsu 4096 2012-02-16 15:21 .
drwxr-xr-x 49 hitsu hitsu 4096 2012-02-27 17:43 ..
drwxrwxr-x  2 hitsu hitsu 4096 2011-12-28 14:18 doc
drwxrwxr-x  2 hitsu hitsu 4096 2011-12-28 14:17 nerdtree_plugin
-rw-rw-r--  1 hitsu hitsu  283 2012-02-07 11:05 .netrwhist
drwxrwxr-x  2 hitsu hitsu 4096 2011-12-28 14:17 plugin
drwxrwxr-x  2 hitsu hitsu 4096 2011-12-28 14:17 syntax

./doc:
total 60
drwxrwxr-x 2 hitsu hitsu  4096 2011-12-28 14:18 .
drwxr-xr-x …
Run Code Online (Sandbox Code Playgroud)

vim nerdtree

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

如何使"git diff"输出正常的diff格式(非统一,非上下文)?

我想git diff输出普通的普通旧差异输出(不统一差异,而不是上下文差异).

我要这个:

$ diff file1 file2
2c2
< b
---
> B
4d3
< d
5a5
> f
Run Code Online (Sandbox Code Playgroud)

我不想要统一输出:

$ diff -u file1 file2
--- file1       2012-07-04 07:57:48.000000000 -0700
+++ file2       2012-07-04 07:58:00.000000000 -0700
@@ -1,5 +1,5 @@
 a
-b
+B
 c
-d
 e
+f
Run Code Online (Sandbox Code Playgroud)

我不想要上下文输出:

$ diff -c file1 file2
*** file1       2012-07-04 07:57:48.000000000 -0700
--- file2       2012-07-04 07:58:00.000000000 -0700
***************
*** 1,5 ****
  a
! b
  c
- d
  e
--- 1,5 ----
  a
! …
Run Code Online (Sandbox Code Playgroud)

git diff

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

为什么2>&1需要在|之前 (管道)但是在"> myfile"之后(重定向到文件)?

将stderr与stdout结合使用时,为什么2>&1需要在|(管道)之前但在> myfile(重定向到文件)之后呢?

要将stderr重定向到stdout以获取文件输出:

  echo > myfile 2>&1
Run Code Online (Sandbox Code Playgroud)

要将stderr重定向到管道的stdout:

  echo 2>&1 | less
Run Code Online (Sandbox Code Playgroud)



我的假设是我可以这样做:

  echo | less 2>&1 
Run Code Online (Sandbox Code Playgroud)

它会起作用,但事实并非如此.为什么不?

bash shell pipeline stdout pipe

14
推荐指数
2
解决办法
3598
查看次数