タグ付けされた質問 「python」

Pythonは、マルチパラダイム、動的型付け、多目的プログラミング言語です。これは、学習、理解、使用が迅速で、クリーンで統一された構文を適用できるように設計されています。Python 2は2020年1月1日をもって正式にサポートされなくなりました。それでも、バージョン固有のPythonの質問については、[python-2.7]または[python-3.x]タグを追加します。Pythonのバリアントまたはライブラリ(Jython、PyPy、Pandas、Numpyなど)を使用する場合は、タグに含めてください。

2
Faust Pythonパッケージを使用してkafkaトピックをWebエンドポイントに接続する方法
トピックを聞くための機能とWebエンドポイントのための機能の2つの機能を持つシンプルなアプリがあります。サーバー側のイベントストリーミング(SSE)、つまりtext / event-streamを作成して、クライアント側でEventSourceを使用してリッスンできるようにしたいと考えています。 今のところ、次のコードがあり、各関数が特定の作業を行っています。 import faust from faust.web import Response app = faust.App("app1", broker="kafka://localhost:29092", value_serializer="raw") test_topic = app.topic("test") @app.agent(test_topic) async def test_topic_agent(stream): async for value in stream: print(f"test_topic_agent RECEIVED -- {value!r}") yield value @app.page("/") async def index(self, request): return self.text("yey") 今、私はこのコードのようなものをインデックスに入れたいが、faustを使用している: import asyncio from aiohttp import web from aiohttp.web import …


1
Djangoは(おそらく)将来的にタスクを実行します
モデルがあるとしましょうEvent。イベントの経過後、招待されたすべてのユーザーに通知(電子メール、プッシュなど)を送信したい。以下の線に沿った何か: class Event(models.Model): start = models.DateTimeField(...) end = models.DateTimeField(...) invited = models.ManyToManyField(model=User) def onEventElapsed(self): for user in self.invited: my_notification_backend.sendMessage(target=user, message="Event has elapsed") さて、もちろん、重要な部分はonEventElapsedいつでも呼び出すことtimezone.now() >= event.endです。end現在の日付から数か月先になる可能性があることに注意してください。 私はこれを行う2つの基本的な方法について考えました。 cron過去5分以内にイベントが経過したかどうかを確認してメソッドを実行する定期的なジョブ(たとえば、5分ごとなど)を使用します。 使用し、将来的に実行するパラメーターを使用celeryしてスケジュールonEventElapsedしetaます(モデルsaveメソッド内)。 オプション1を検討すると、考えられる解決策は次のようになりますdjango-celery-beat。ただし、通知を送信するために一定の間隔でタスクを実行するのは少し奇妙に思えます。さらに、(おそらく)それほど洗練されていない解決策となる(潜在的な)問題を思いつきました。 5分ごとに、直前の5分間に経過したイベントを確認しますか?不安定なようですが、いくつかのイベントが見落とされている可能性があります(または他のイベントで通知が2回送信されますか?)潜在的な回避策:True通知が送信されたときに設定されるブール型フィールドをモデルに追加します。 次に、オプション2にも問題があります。 イベント開始/終了日時が移動した場合は手動で対処してください。を使用する場合celery、taskID(easy、ofc)を保存し、日付が変更されたらタスクを取り消して、新しいタスクを発行する必要があります。しかし、私は、セロリに将来実行されるタスクを処理するときに(デザイン固有の)問題があることを読みました:githubのOpen Issue。これがどのように起こり、なぜそれが解決するのが簡単ではないのかがわかります。 今、私は潜在的に私の問題を解決できるいくつかのライブラリに出会いました: celery_longterm_scheduler(しかし、これは、Schederyクラスが異なるため、以前のようにセロリを使用できないことを意味しますか?これは、django-celery-beat... の可能な使用法にもつながります... 2つのフレームワークのいずれかを使用すると、ジョブをキューに入れることができます(実行時間は少し長くなりますが、数か月先ではありませんか?) django-apscheduler、を使用しapschedulerます。しかし、遠い将来に実行されるタスクを処理する方法についての情報は見つかりませんでした。 私がこれに取り組む方法に根本的な欠陥はありますか?あなたが持っているかもしれないどんな入力についても嬉しいです。 通知:これは何らかの意見に基づく可能性が高いことを知っていますが、醜いまたはエレガントなものと見なされるものに関係なく、見逃した非常に基本的なことがあるかもしれません。

3
Pandasでグループ化されたDataFrameにPython関数を適用する-計算を高速化するための最も効率的なアプローチは何ですか?
私は非常に大きなPandas DataFrameを処理しています-私のデータセットは次のdf設定に似ています: import pandas as pd import numpy as np #--------------------------------------------- SIZING PARAMETERS : R1 = 20 # .repeat( repeats = R1 ) R2 = 10 # .repeat( repeats = R2 ) R3 = 541680 # .repeat( repeats = [ R3, R4 ] ) R4 = 576720 # .repeat( repeats …

2
ネットワークの第2層を出力する方法は?
私のモデルは、数字の画像(MNIST dataset)でトレーニングされています。ネットワークの2番目のレイヤーの出力(128個の数値の配列)を印刷しようとしています。 多くの例を読んだ後-たとえば、これ、これ、またはこれ。 私は自分のネットワークでこれをどうにかしてできませんでした。どちらのソリューションも自分のアルゴリズムでは機能しません。 Colabへのリンク:https ://colab.research.google.com/drive/1MLbpWJmq8JZB4_zKongaHP2o3M1FpvAv?fbclid=IwAR20xRz2i6sFS-Nm6Xwfk5hztdXOuxY4tZaDRXxAx3b98AHGaToa9 さまざまなエラーメッセージが多数表示されました。ひとつひとつ処理しようとしたのですが、自分ではわかりませんでした。 何が欠けていますか?セカンドレイヤーを出力するには? 私の形状が(28,28)-のタイプと値はinput_shape何ですか? 失敗した試行とエラーの例: (1) for layer in model.layers: get_2nd_layer_output = K.function([model.layers[0].input],[model.layers[2].output]) layer_output = get_2nd_layer_output(layer)[0] print('\nlayer output: get_2nd_layer_output=, layer=', layer, '\nlayer output: get_2nd_layer_output=', get_2nd_layer_output) TypeError:入力はリストまたはタプルである必要があります。 (2) input_shape=(28, 28) inp = model.input # input placeholder outputs = [layer.output for layer in model.layers] # all layer …

5
Pythonリクエスト:Authorizationヘッダーを削除するPOSTリクエスト
Pythonリクエストライブラリを使用してAPI POSTリクエストを作成しようとしています。Authorizationヘッダーを通過していますが、デバッグしようとすると、ヘッダーが削除されていることがわかります。何が起こっているのか分かりません。 これが私のコードです: access_token = get_access_token() bearer_token = base64.b64encode(bytes("'Bearer {}'".format(access_token)), 'utf-8') headers = {'Content-Type': 'application/json', 'Authorization': bearer_token} data = '{"FirstName" : "Jane", "LastName" : "Smith"}' response = requests.post('https://myserver.com/endpoint', headers=headers, data=data) 上記のようAuthorizationに、リクエストの引数に手動でヘッダーを設定しましたが、実際のリクエストのヘッダーがありません: {'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.4.3 CPython/2.7.9 Linux/4.1.19-v7+'}。 追加情報として、POSTリクエストをGETリクエストに変更すると、Authorizationヘッダーは正常に通過します。 このライブラリがPOSTリクエストのヘッダーをドロップするのはなぜですか?これを機能させるにはどうすればよいですか? リクエストライブラリのv2.4.3とPython 2.7.9を使用する

4
標準のデッキで見られるよりも複雑なトランプの種類のクラスを作る良い方法は?
私はオブジェクト指向プログラミングに非常に慣れていないので、単純なカードゲームを作ることでpythonでの学習を始めようとしています(伝統的なようです!)。私は正常に動作する次の例を実行し、PlayingCard()クラスのインスタンスを作成するためにクラスの複数のインスタンスを作成することについて教えてくれますDeck()。 class PlayingCard(object): def __init__(self, suit, val): self.suit = suit self.value = val def print_card(self): print("{} of {}".format(self.value, self.suit)) class Deck(object): def __init__(self): self.playingcards = [] self.build() def build(self): for s in ["Spades", "Clubs", "Diamonds", "Hearts"]: for v in range(1,14): self.playingcards.append(PlayingCard(s,v)) deck = Deck() 標準の52デッキだけではなく、より複雑なカードを使って何かを作りたいと思っています(値が適切に増加している)。私が念頭に置いているデッキはモノポリーカードゲームです。 カードには、ACTIONカード、PROPERTYカード、MONEYカードの3つの基本的なタイプがあります。アクションカードはさまざまなアクションを実行し、プロパティカードはさまざまなカラーセットに属し、マネーカードはさまざまな値を持つことができます。さらに、プロパティカードは「ワイルドカード」にすることができ、2つのセットのいずれかの一部として使用できます。最後に、すべてのカードには同等の金額値があります(各カードの上隅に示されています)。レントアクションカードでは、カードはカードに示されているカラープロパティにのみ適用できます。 私の質問は、一般的にこのような状況をどのように処理するかであり、クラスベースのpythonプログラムにこれらの異なるカードを含めるための良い方法は何でしょうか?私は単一のPlayingCard()クラスを保持し、のような多くの入力を保持する必要がありPlayingCard(type="PROPERTY", value="3M")ます。それともなど、別々のクラスを作成する方が良いだろうActionPlayingCard()、PropertyPlayingCard()などを?それとももっと良い方法がありますか?私が言うように、私はここで私の学習の初めであり、より高いレベルの設計の観点からこれらのタイプの状況を整理する方法。 どうもありがとう。

1
軸の現在表示されている領域にいるアーティストを確認する方法はmatplotlibにありますか?
インタラクティブフィギュアを使ったプログラムで、たまに多くのアーティストが描かれることがあります。この図では、マウスを使用してズームおよびパンすることもできます。ただし、パンのズーム中のパフォーマンスは、すべてのアーティストが常に再描画されるため、あまり良くありません。現在表示されている領域にいるアーティストを確認して、それらを再描画する方法はありますか?(以下の例では、パフォーマンスはまだ比較的良好ですが、より複雑なアーティストを使用することで、パフォーマンスを任意に悪化させることができます) このhoverメソッドには、呼び出されるたびにcanvas.draw()最後に実行されるという同様のパフォーマンス問題がありました。しかし、ご覧のとおり、キャッシングを利用し、(これに基づいて)軸の背景を復元することで、その適切な回避策を見つけました。これによりパフォーマンスが大幅に向上し、多くのアーティストでも非常にスムーズに動作します。多分これを行うための同様の方法がありますが、panand zoomメソッドについては? 長いコードのサンプルで申し訳ありませんが、そのほとんどは質問に直接関連していませんが、実際の例が問題を強調するために必要です。 編集 MWEを実際のコードをよりよく表すものに更新しました。 import numpy as np import numpy as np import sys import matplotlib.pyplot as plt from matplotlib.backends.backend_qt5agg import \ FigureCanvasQTAgg import matplotlib.patheffects as PathEffects from matplotlib.text import Annotation from matplotlib.collections import LineCollection from PyQt5.QtWidgets import QApplication, QVBoxLayout, QDialog def check_limits(base_xlim, base_ylim, new_xlim, new_ylim): if new_xlim[0] …


4
pythonでgoogleから画像をダウンロードできないのはなぜですか?
このコードは、Googleからたくさんの画像をダウンロードするのに役立ちました。それは数日前まで機能していましたが、今では突然コードが壊れます。 コード: # importing google_images_download module from google_images_download import google_images_download # creating object response = google_images_download.googleimagesdownload() search_queries = ['Apple', 'Orange', 'Grapes', 'water melon'] def downloadimages(query): # keywords is the search query # format is the image file format # limit is the number of images to be downloaded # print …

1
python3.Xでpexpectバッファーをクリアできません
Pexpectモジュールを使用してリモートサーバーに接続しています。応答を正常に送信および取得できます。私はジャンクを期待してバッファをクリアしようとしていますが、バッファをクリアすると想定していますが、実際にはバッファをクリアしていません。 以下は私のサンプルコードです import pexpect obj = pexpect.spawn("telnet 172.16.250.250", maxread=8192) obj.sendline("") result = obj.expect(expected, timeout=3) --> getting output here `OUTPUT 1` obj.sendline("1") time.sleep(3) try: obj.expect("Asdfgdsad", timeout=2) --> I am expecting to clear buffer here but it did not except pexpect.TIMEOUT: pass print("buffer is", obj.buffer) . --> This is printing output `OUTPUT …
9 python 

6
AttributeError: 'DataFrame'オブジェクトには属性 'ix'がありません
パンダデータフレームの.ix属性を使用して列をプルしようとすると、上記のエラーが発生します(例:df.ix [:, 'col_header'])。スクリプトは今朝の時点で機能していましたが、今日の午後、Pandasの新規インストールを使用して新しいLinux環境で実行しました。他の誰かが以前にこのエラーを見たことがありますか?私はここや他の場所で検索しましたが、見つかりません。

3
Pythonのファクトリメソッドとインジェクトフレームワーク-何がよりクリーンですか?
私のアプリケーションで通常行うことは、ファクトリメソッドを使用してすべてのサービス/ dao / repo /クライアントを作成することです class Service: def init(self, db): self._db = db @classmethod def from_env(cls): return cls(db=PostgresDatabase.from_env()) アプリを作成するとき service = Service.from_env() すべての依存関係を作成するもの テストで実際のデータベースを使用したくない場合は、DIを実行します service = Service(db=InMemoryDatabse()) サービスはデータベースの作成方法を知っており、どのデータベースタイプを作成するか(InMemoryDatabseまたはMongoDatabaseでもかまいません)を知っているため、これはクリーン/ 16進数アーキテクチャとはかなり異なると思います。 私はクリーン/ 16進アーキテクチャでは私が持っていると思います class DatabaseInterface(ABC): @abstractmethod def get_user(self, user_id: int) -> User: pass import inject class Service: @inject.autoparams() def __init__(self, db: DatabaseInterface): …

3
パンダのデータフレームから列の一部のみを溶かさない
次のサンプルデータフレームがあります。 df = pd.DataFrame(data = {'RecordID' : [1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5], 'DisplayLabel' : ['Source','Test','Value 1','Value 2','Value3','Source','Test','Value 1','Value 2','Source','Test','Value 1','Value 2','Source','Test','Value 1','Value 2','Source','Test','Value 1','Value 2'], 'Value' : ['Web','Logic','S','I','Complete','Person','Voice','>20','P','Mail','OCR','A','I','Dictation','Understandable','S','I','Web','Logic','R','S']}) これはこのデータフレームを作成します: +-------+----------+---------------+----------------+ | Index | RecordID | Display Label | Value | +-------+----------+---------------+----------------+ | 0 | 1 | Source | Web | | 1 | 1 …

1
DockerでPYTHONDONTWRITEBYTECODEを使用することに不利な点はありますか?
(例えば:パイソンに基づいて、多くのドッカーのチュートリアルでは、この1)彼らはオプションを使用しPYTHONDONTWRITEBYTECODE、ソース・モジュールのインポートに.pycファイルのファイルを(これは、-Bオプションを指定することと同じです)書き込みにPythonの回避を作るために。 このオプションを設定するリスクと利点は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.