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

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

2
numpyを使用した奇妙なインデックス付け
(2,2,50,100)という形の変数xがあります。 また、np.array([0,10,20])と等しい配列yもあります。x [0、:、:、y]にインデックスを付けると、奇妙なことが起こります。 x = np.full((2,2,50,100),np.nan) y = np.array([0,10,20]) print(x.shape) (2,2,50,100) print(x[:,:,:,y].shape) (2,2,50,3) print(x[0,:,:,:].shape) (2,50,100) print(x[0,:,:,y].shape) (3,2,50) 最後の1つが(2,50,3)ではなく(3,2,50)を出力するのはなぜですか?
27 python  numpy 

8
CSV列を階層関係に変換する方法はありますか?
分類レベルが列になっている700万の生物多様性レコードのcsvがあります。例えば: RecordID,kingdom,phylum,class,order,family,genus,species 1,Animalia,Chordata,Mammalia,Primates,Hominidae,Homo,Homo sapiens 2,Animalia,Chordata,Mammalia,Carnivora,Canidae,Canis,Canis 3,Plantae,nan,Magnoliopsida,Brassicales,Brassicaceae,Arabidopsis,Arabidopsis thaliana 4,Plantae,nan,Magnoliopsida,Fabales,Fabaceae,Phaseoulus,Phaseolus vulgaris D3でビジュアライゼーションを作成したいのですが、データ形式はネットワークである必要があり、列の異なる値はそれぞれ、特定の値の前の列の子です。私はcsvからこのようなものに行く必要があります: { name: 'Animalia', children: [{ name: 'Chordata', children: [{ name: 'Mammalia', children: [{ name: 'Primates', children: 'Hominidae' }, { name: 'Carnivora', children: 'Canidae' }] }] }] } 1000のforループを使用せずにこれを行う方法については、思いつきませんでした。誰かがこのネットワークをpythonまたはjavascriptで作成する方法について提案がありますか?

1
dictとcollections.abc.MutableMappingを一緒にサブクラス化する方法はありますか?
例として、サブクラスdictを作成し、すべてのキーを大文字にしたいとします。 class capdict(dict): def __init__(self,*args,**kwds): super().__init__(*args,**kwds) mod = [(k.capitalize(),v) for k,v in super().items()] super().clear() super().update(mod) def __getitem__(self,key): return super().__getitem__(key.capitalize()) def __setitem__(self,key,value): super().__setitem__(key.capitalize(),value) def __delitem__(self,key): super().__detitem__(key.capitalize()) これはある程度機能し、 >>> ex = capdict(map(reversed,enumerate("abc"))) >>> ex {'A': 0, 'B': 1, 'C': 2} >>> ex['a'] 0 もちろん、実装することを思い出したメソッドのみ、たとえば >>> 'a' in ex False は望ましい動作ではありません。 ここで、「コア」メソッドから派生できるすべてのメソッドを入力するための遅延方法は、で混合されcollections.abc.MutableMappingます。ただし、ここでは機能しません。問題のメソッド(__contains__例)はすでにによって提供されているためdictです。 ケーキを食べて食べる方法はありますか?MutableMappingそれらに基づいて他のメソッドを再実装するように、オーバーライドしたメソッドのみを表示するための魔法ですか?

1
「pip._internal.index」から「PackageFinder」という名前をインポートできないため、Read-the-docsビルドが失敗する
read-the-docsでのSphinxドキュメントのビルドは、次のエラー(以下の完全なログ)で失敗します。 ImportError: cannot import name 'PackageFinder' from 'pip._internal.index' (/home/docs/checkouts/readthedocs.org/user_builds/cascade-python/envs/latest/lib/python3.7/site-packages/pip/_internal/index/__init__.py) 私は何か間違ったことをしたのですか、それともドキュメントのバグですか? Sphinxドキュメントのローカルビルドは問題なく実行されます。 read-the-docsの完全なエラーログ: Read the Docs build information Build id: 10299638 Project: cascade-python Version: latest Commit: a7d50bf781bd8076b10dd7024db4ccb628016c27 Date: 2020-01-21T17:03:12.876711Z State: finished Success: False [rtd-command-info] start-time: 2020-01-21T17:03:13.203354Z, end-time: 2020-01-21T17:03:13.215400Z, duration: 0, exit-code: 0 git remote set-url origin https://github.com/brunorijsman/cascade-python.git [rtd-command-info] start-time: 2020-01-21T17:03:13.276220Z, end-time: …

3
マルチスレッドに関するPandasとNumpyの奇妙なバグ
Numpyの関数のほとんどは、デフォルトでマルチスレッドを有効にします。 たとえば、スクリプトを実行すると、8コアのIntel CPUワークステーションで作業します import numpy as np x=np.random.random(1000000) for i in range(100000): np.sqrt(x) Linux topは、実行中に800%のCPU使用率を表示し ます。つまり、numpyはワークステーションに8つのコアがあることを自動的に検出し、8つのコアnp.sqrtすべてを自動的に使用して計算を高速化します。 しかし、私は奇妙なバグを見つけました。スクリプトを実行すると import numpy as np import pandas as pd df=pd.DataFrame(np.random.random((10,10))) df+df x=np.random.random(1000000) for i in range(100000): np.sqrt(x) CPU使用率は100%です!!。 つまり、numpy関数を実行する前に2つのpandas DataFrameを追加すると、numpyの自動マルチスレッド機能は警告なしに消えてしまいます。これは絶対に合理的ではありません、なぜPandas dataFrame計算はNumpyスレッド設定に影響するのですか?バグですか?これを回避する方法は? PS: Linux perfツールを使用してさらに掘り下げます。 最初のスクリプトショーの実行 2番目のスクリプトの実行中に したがって、両方のスクリプトにはが含まれますがlibmkl_vml_avx2.so、最初のスクリプトにはlibiomp5.soopenMPに関連すると思われる追加のスクリプトが含まれます。 そして、vmlはIntelベクトル数学ライブラリを意味するので、vml docによれば、少なくとも以下の関数はすべて自動的にマルチスレッド化されると思います
25 python  pandas  numpy 

2
Pythonでの乱数の最終桁の分布
Pythonで0から9までのランダムな数字を生成するには、2つの明白な方法があります。0と1の間のランダムな浮動小数点数を生成し、10を掛け、切り捨てることができます。あるいは、このrandom.randint方法を使用することもできます。 import random def random_digit_1(): return int(10 * random.random()) def random_digit_2(): return random.randint(0, 9) 0から1までの乱数を生成し、最後の桁を保持した場合にどうなるかについて知りました。分布が均一であるとは必ずしも思っていませんでしたが、結果はかなり驚くべきものでした。 from random import random, seed from collections import Counter seed(0) counts = Counter(int(str(random())[-1]) for _ in range(1_000_000)) print(counts) 出力: Counter({1: 84206, 5: 130245, 3: 119433, 6: 129835, 8: 101488, 2: 100861, 9: 84796, 4: 129088, …
24 python  random 

9
リストの要素が2つの空白の間にある場合にそれらを結合する
私はこのような入力をしています: ['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++'] 次の''ような出力を得るために要素を結合したい: ['assembly', 'python', 'java', 'ruby', 'javascript', 'c++'] 私は次のjoinようにスライスを使用してリストしようとしました: a=['assembly', '', 'py', 'tho', 'n', '', 'ja', 'va', '', 'rub', 'y', '', 'java', 'script', '', 'c++'] a[2:5] = [''.join(a[ 2: 5])] a=['assembly', '', 'python', '', …

3
AttributeError:Python 3.8では、モジュール 'time'に属性 'clock'がありません
公開鍵と秘密鍵を生成するコードを書きました。Python 3.7ではうまく機能しますが、Python 3.8では失敗します。最新バージョンでどのように失敗するのかわかりません。いくつかの解決策を教えてください。 これがコードです: from Crypto.PublicKey import RSA def generate_keys(): modulus_length = 1024 key = RSA.generate(modulus_length) pub_key = key.publickey() private_key = key.exportKey() public_key = pub_key.exportKey() return private_key, public_key a = generate_keys() print(a) Python 3.8バージョンのエラー: Traceback (most recent call last): File "temp.py", line 18, in <module> a = generate_keys() File "temp.py", …

7
辞書に基づいてデータフレームに新しい列を追加する
データフレームと辞書があります。新しい列をデータフレームに追加し、辞書に基づいてその値を計算する必要があります。 機械学習、いくつかのテーブルに基づく新しい機能の追加: score = {(1, 45, 1, 1) : 4, (0, 1, 2, 1) : 5} df = pd.DataFrame(data = { 'gender' : [1, 1, 0, 1, 1, 0, 0, 0, 1, 0], 'age' : [13, 45, 1, 45, 15, 16, 16, 16, 15, 15], 'cholesterol' : [1, 2, 2, …

2
なぜkerasモデルはコンパイル後に予測が遅くなるのですか?
理論的には、重みは固定サイズであるため、予測は一定でなければなりません。コンパイル後に速度を戻すにはどうすればよいですか(オプティマイザを削除する必要はありません)。 関連する実験を参照してください:https : //nbviewer.jupyter.org/github/off99555/TensorFlowExperiments/blob/master/test-prediction-speed-after-compile.ipynb?flush_cache=true

5
2つのiframeを比較して違いを視覚的に取得する方法は?
ケース: 私には2つのiframeがあり、両方に多くのdivと他のコントロールがあるので、両方のiframeは中規模のHTML Webサイトのようなものです。両方を比較して違いを見つけたいです。 私はここでさまざまなオプションを考えました: 解決策1: 2つのiframeの完全なスクリーンショットを取り、スクリーンショットの不一致領域にグリッドを描画するPythonの枕ライブラリを使用して両方のスクリーンショットを比較します。しかし、ここで問題となるのは、iframeの完全なスクリーンショットを撮ることができるコードがインターネット上で見つからなかったことです(スクロールバー付きの長いiframeがあります)。私はSOでほぼすべての答えを試しましたが、すべては通常のページで機能していますが、iframeでは機能しません。 リファレンス:https : //blog.rinatussenov.com/automating-manual-visual-regression-tests-with-python-and-selenium-be66be950196 解決策2:何らかの方法ですべてのHTMLコードをiframeから取得して比較しますが、2つのiframeで異なるまたは不一致のHTMLコードが見つかるため、結果を分析するのは簡単ではありません。これはテキスト比較のようなものであり、私が信じている良い解決策ではありません。 したがって、PythonまたはJavaScriptを使用してiframeの完全なスクリーンショットを撮ることができるコード、または 2つのiframeを比較して違いを見つけることができるいくつかのより良いオプションを探しています。 私は以下のようにグーグルが見つけるほとんどすべての答えを試しました: :全体のHTMLはインラインフレーム内にあるどこサンプルインラインフレームをここに与えられているhttps://grapesjs.com/demo.html、いくつかのコードは、このIFRAMEのフルスクリーンショットを撮ることができた場合は、私のために、比較しやすいだろう。

7
PythonのSSLモジュールは使用できません(OSX)
pip installOSX 10.13のvirtualenvで実行できません。私はすでに実行してbrew install opensslおり、パスはを/usr/local/include/openssl指してい../opt/openssl/include/opensslます。誰かがこれを修正する方法を知っていますか?これは私が再インストールした後に起こったpython使用してしたbrew install。 pipはTLS / SSLを必要とする場所で構成されていますが、Pythonのsslモジュールは使用できません。枕の収集でURLを取得できませんでしたhttps://pypi.python.org/simple/pillow/:SSL証明書の確認中に問題が発生しました:SSLモジュールが利用できないため、HTTPS URLに接続できません。-スキップPillowの要件を満たすバージョンが見つかりませんでした(バージョン:から)Pillowに一致するディストリビューションが見つかりません 更新:ここにいくつかの詳細があります: ✗ which python /usr/local/opt/python/libexec/bin/python ✗ which pip /usr/local/opt/python/libexec/bin/pip ✗ python --version Python 3.7.4 ✗ pip --version pip 19.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7) ✗ brew info python python: stable 3.7.4 (bottled), HEAD Interpreted, interactive, object-oriented programming language https://www.python.org/ /usr/local/Cellar/python/3.6.5_1 (4,795 …
21 python  macos  ssl 

7
パンダ列にリストのすべての要素が含まれているかどうかを確認する
私はこのようなdfを持っています: frame = pd.DataFrame({'a' : ['a,b,c', 'a,c,f', 'b,d,f','a,z,c']}) そしてアイテムのリスト: letters = ['a','c'] 私の目標はframe、少なくとも2つの要素を含む行をすべて取得することですletters 私はこの解決策を思いつきました: for i in letters: subframe = frame[frame['a'].str.contains(i)] これは私が欲しいものを私に与えます、しかしそれはスケーラビリティの点で最良の解決策ではないかもしれません。「ベクトル化された」ソリューションはありますか?ありがとう
20 python  pandas 

14
採点システム機能の反復if-elifステートメントをどのように簡略化できますか?
目標は、スコアを「0から1」のシステムから「FからA」のシステムに変換するプログラムを構築することです。 score >= 0.9「A」を印刷する場合 score >= 0.8「B」を印刷する場合 0.7、C 0.6、D そして、そのポイントを下回る任意の値、Fを出力 これはそれを構築する方法であり、プログラムで動作しますが、多少反復的です: if scr >= 0.9: print('A') elif scr >= 0.8: print('B') elif scr >= 0.7: print('C') elif scr >= 0.6: print('D') else: print('F') 複合ステートメントが繰り返しにならないように関数を作成する方法があるかどうか知りたいのですが。 私は完全に初心者ですが、次のようになります: def convertgrade(scr, numgrd, ltrgrd): if scr >= numgrd: return ltrgrd if scr < numgrd: return …

2
PythonとJuliaの自己相関
Juliaを使用して自己相関を行い、それをPythonの結果と比較しようとしています。彼らはなぜ異なる結果をもたらすのですか? ジュリアコード using StatsBase t = range(0, stop=10, length=10) test_data = sin.(exp.(t.^2)) acf = StatsBase.autocor(test_data) 与える 10-element Array{Float64,1}: 1.0 0.13254954979179642 -0.2030283419321465 0.00029587850872956104 -0.06629381497277881 0.031309038331589614 -0.16633393452504994 -0.08482388975165675 0.0006905628640697538 -0.1443650483145533 Pythonコード from statsmodels.tsa.stattools import acf import numpy as np t = np.linspace(0,10,10) test_data = np.sin(np.exp(t**2)) acf_result = acf(test_data) 与える array([ 1. , …
19 python  julia 

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