[解決済み】Ellipsisオブジェクトは何をするのですか?
質問
名前空間をぼんやり眺めていたら、「Security」という奇妙なオブジェクトがあることに気づきました。
Ellipsis
これは特別なものでも何でもないように見えますが、グローバルに利用できるビルトインです。
検索してみると、NumpyとScipyのスライス構文の不明瞭なバリエーションで使われていることがわかりました...が、他にはほとんど何もありません。
このオブジェクトは、Numpy + Scipyをサポートするために特別に言語に追加されたのでしょうか?Ellipsisには一般的な意味や用途があるのでしょうか?
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
解決方法は?
このことは、別の 質問 最近 を詳しく説明すると、私の 回答 そこから
エリプシス は、スライス表記で出現することができるオブジェクトです。 例えば
myList[1:2, ..., 0]
を実装しているものであれば、その解釈は全く自由です。
__getitem__
という関数があり
Ellipsis
オブジェクトがありますが、主な (そして意図された) 使い方は
numpy
サードパーティライブラリで、多次元配列の型が追加されています。 次元以上あるので、スライスは開始と停止のインデックスだけでなく、より複雑になり、多次元でのスライスもできると便利です。例えば、4x4 の配列があったとして、左上の領域は次のようなスライスで定義されます。
[:2,:2]
:
>>> a
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12],
[13, 14, 15, 16]])
>>> a[:2,:2] # top left
array([[1, 2],
[5, 6]])
これをさらに発展させたものとして、Ellipsisは、指定されていない配列の残りの次元のプレースホルダーを示すために使用されています。 これは、スライス全体を示すものと考えてください。
[:]
のように、3次元配列の場合は、配置された隙間のすべての次元について
a[...,0]
と同じです。
a[:,:,0]
で、4dの場合。
a[:,:,:,0]
を、同様に
a[0,...,0]
は
a[0,:,:,0]
(真ん中のコロンの数が配列の全次元数を構成する).
興味深いことに、python3では、Ellipsisリテラル(
...
はスライス構文以外でも使えるので、実際に書くことができます。
>>> ...
Ellipsis
各種数値型以外は、いや、使われてないと思います。 私が知る限り、純粋にnumpyの使用のために追加されたもので、オブジェクトと対応する構文を提供する以外のコアサポートはありません。 オブジェクトは必要ありませんが、スライスのリテラル "... " のサポートは必要です。
関連
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonショートビデオクローラーチュートリアル
-
Python LeNetネットワークの説明とpytorchでの実装
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない