相关疑难解决方法(0)


Python Ellipsis对象有什么作用?

在闲置浏览命名空间的同时,我注意到一个名为" Ellipsis " 的奇怪物体,它似乎没有或做任何特殊的事情,但它是一个全局可用的内置.

在搜索之后,我发现它被Numpy和Scipy用于切片语法的一些模糊变体......但几乎没有别的.

这个对象是否专门用于支持Numpy + Scipy?省略号是否具有任何通用含义或用途?

D:\workspace\numpy>python
Python 2.4.4 (#71, Oct 18 2006, 08:34:43) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> Ellipsis
Ellipsis
Run Code Online (Sandbox Code Playgroud)

python ellipsis

472
推荐指数
11
解决办法
12万
查看次数

列表中的[...](省略号)在Python中意味着什么?

我刚刚获得了一些python脚本的奇怪输出:

[[(7, 6), (6, 4), (7, 2)], [...], [...], [...], [(7, 6), (8, 4), (7, 2)], [...], [...], [...], [...], [...], [...], [...]]
Run Code Online (Sandbox Code Playgroud)

输出应该是元组列表的列表.但我不知道为什么会出现.

这是什么意思?

我不认为它是一个空列表,因为空列表是[].这些可能是重复的吗?

python

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

自定义占位符,如python中的None

我在一个函数中使用argspec,该函数将另一个函数或方法作为参数,并返回一个这样的元组:

(("arg1", obj1), ("arg2", obj2), ...)
Run Code Online (Sandbox Code Playgroud)

这意味着传递函数的第一个参数是arg1,它的默认值为obj1,依此类推.

这是一个问题:如果它没有默认值,我需要一个占位符值来表示这一点.我不能使用None,因为那时我无法区分无默认值默认值是None.对于False,0,-1等也是如此.我可以使它成为一个单元素的元组,但是然后用于检查它的代码将是丑陋的,我不能轻易将它变成一个字典.所以我想我会创建一个非类似的非对象,这就是我想出来的:

class MetaNoDefault(type):
    def __repr__(cls):
        return cls.__name__
    __str__ = __repr__

class NoDefault(object):
    __metaclass__ = MetaNoDefault
Run Code Online (Sandbox Code Playgroud)

现在("arg1", NoDefault)表明arg1没有默认值,我可以做类似的事情if obj1 is NoDefault:.元类使它打印为NoDefault而不是<class '__main__.NoDefault'>.

有没有理由不这样做?有更好的解决方案吗?

python metaclass

7
推荐指数
2
解决办法
1435
查看次数

python:在给定维度索引的情况下提取多维数组的一个切片

我知道如何采取x[:,:,:,:,j,:](采取第4维的第j个切片).

如果维度在运行时已知,并且不是已知的常量,是否有办法做同样的事情?

python numpy

7
推荐指数
2
解决办法
7578
查看次数

什么...在numpy代码中意味着什么?

它叫什么?我不知道如何搜索它; 我试着用谷歌把它称为省略号.我不是指在交互式输出中使用点来表示没有显示完整数组,但是正如我正在查看的代码中那样,

xTensor0[...] = xVTensor[..., 0]

从我的实验来看,它似乎与:索引中的功能相似,但代表多个:,x[:,:,1]相当于x[...,1].

python numpy

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

将NumPy数组元素地映射到更多维度的数组中

我想要numpy.array从NxM到NxMx3的映射a ,其中三个元素的向量是原始条目的函数:

lambda x: [f1(x), f2(x), f3(x)]
Run Code Online (Sandbox Code Playgroud)

但是,像numpy.vectorize不允许更改尺寸的事情.当然,我可以创建一个零数组并创建一个循环(这就是我现在正在做的事情),但它既没有Pythonic也没有效率(就像Python中的每个循环一样).

有没有更好的方法在numpy.array上执行元素操作,为每个条目生成一个向量?

python arrays numpy map

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

Python 中的省略号有什么用?

有人可以帮忙吗,Python 中 Ellipse 的用途是什么,并提供一些示例以及何时使用它?

我对此进行了一些搜索,它可以与函数一起使用:

 def add():
     ...
Run Code Online (Sandbox Code Playgroud)

并在列表中进行切片。

import numpy
n = numpy.arange(16).reshape(2, 2, 2, 2)

print(n)

print('----------------')
print(n[1,...,1])

[[[[ 0  1]
   [ 2  3]]

  [[ 4  5]
   [ 6  7]]]


 [[[ 8  9]
   [10 11]]

  [[12 13]
   [14 15]]]]
----------------
Ellipsis:[[ 9 11]
 [13 15]]
Run Code Online (Sandbox Code Playgroud)

python ellipse python-3.x

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