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

NumPyは、Pythonプログラミング言語の科学および数値計算の拡張機能です。

6
numpy配列で乗算する
2D配列の各用語に、1D配列の対応する用語を掛けようとしています。numpy.multiply関数に示されているように、すべての列に1D配列を乗算する場合、これは非常に簡単です。しかし、私は反対のことをしたいと思います。行の各項を乗算します。言い換えれば、私は乗算したい: [1,2,3] [0] [4,5,6] * [1] [7,8,9] [2] 取得します [0,0,0] [4,5,6] [14,16,18] しかし、代わりに私は得る [0,2,6] [0,5,12] [0,8,18] numpyでそれを行うエレガントな方法があるかどうか誰かが知っていますか?どうもありがとう、アレックス
89 python  arrays  numpy 

8
numpy配列でモードを見つける最も効率的な方法
整数(正または負の両方)を含む2D配列があります。各行は特定の空間サイトの経時的な値を表し、各列は特定の時間のさまざまな空間サイトの値を表します。 したがって、配列が次のような場合: 1 3 4 2 2 7 5 2 2 1 4 1 3 3 2 2 1 1 結果は次のようになります 1 3 2 2 2 1 モードに複数の値がある場合、いずれか(ランダムに選択)をモードとして設定できることに注意してください。 一度に1つずつ列検索モードを繰り返すことができますが、numpyにそれを行うための組み込み関数があることを期待していました。または、ループせずに効率的にそれを見つけるためのトリックがある場合。
89 python  numpy  2d  mode 

1
16331239353195370.0に特別な意味はありますか?
使用してimport numpy as np私はそれに気づいた np.tan(np.pi/2) タイトルに番号を付けますが、 np.inf 16331239353195370.0 この数が気になります。それはいくつかのシステムマシンの精度パラメータに関連していますか?何かから計算できたでしょうか?(私は似たようなものの線に沿って考えていますsys.float_info) 編集:同じ結果は、Java、octace、matlabなどの他の環境でも実際に再現可能です...しかし、提案された複製は理由を説明していません。

6
マルチプロセッシングプロセス間で大規模な読み取り専用のNumpy配列を共有する
60GBのSciPyアレイ(マトリックス)があり、5つ以上のmultiprocessing Processオブジェクト間で共有する必要があります。私はnumpy-sharedmemを見て、SciPyリストでこの議論を読みました。2つのアプローチがあるようです-numpy-sharedmemとを使用してmultiprocessing.RawArray()NumPyをdtypesにマッピングしctypeます。さて、これnumpy-sharedmemが進むべき道のようですが、良い参考例はまだ見ていません。配列(実際には行列)は読み取り専用になるため、ロックは必要ありません。さて、サイズが大きいので、コピーは避けたいと思います。それはのように聞こえる正しい方法で作成することであるだけとして配列のコピーをsharedmem配列し、その後にそれを渡すProcessオブジェクト?いくつかの具体的な質問: sharedmemハンドルを実際にサブに渡すための最良の方法は何Process()ですか?1つの配列を渡すためだけにキューが必要ですか?パイプの方がいいでしょうか?Process()サブクラスのinit(pickle化されていると想定している)への引数として渡すことはできますか? 上でリンクしたディスカッションでnumpy-sharedmemは、64ビットセーフではないという言及がありますか?私は間違いなく32ビットアドレス指定できないいくつかの構造を使用しています。 このRawArray()アプローチにはトレードオフがありますか?遅い、バギー? numpy-sharedmemメソッドにctypeからdtypeへのマッピングが必要ですか? 誰かがこれを行ういくつかのオープンソースコードの例を持っていますか?私は非常に実践的な知識を持っており、良い例がなければ、これを機能させるのは困難です。 他の人にこれを明確にするために私が提供できる追加情報がある場合は、コメントしてください。追加します。ありがとう! これはUbuntuLinuxと多分MacOSで実行する必要がありますが、移植性は大きな問題ではありません。

6
numpy配列の行を削除する
私はこのように見えるかもしれない配列を持っています: ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875, 0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]] 行の1つが最後にゼロ値を持っていることに注意してください。すべてのセルにゼロ以外の値を含む行を保持しながら、ゼロを含む行を削除したいと思います。 ただし、配列には、データが入力されるたびに異なる行数があり、ゼロは毎回異なる行に配置されます。 次のコード行を使用して、各行のゼロ以外の要素の数を取得します。 NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1) 上記の配列の場合、次のものNumNonzeroElementsInRowsが含まれます。[5 4] 5つは、行0のすべての可能な値がゼロ以外であることを示し、4つは、行1の可能な値の1つがゼロであることを示します。 したがって、次のコード行を使用して、ゼロ値を含む行を見つけて削除しようとしています。 for q in range(len(NumNonzeroElementsInRows)): if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max(): p.delete(ANOVAInputMatrixValuesArray, q, axis=0) しかし、何らかの理由で、このコードは何も実行していないようですが、多くの印刷コマンドを実行すると、コードに至るまですべての変数が正しく入力されているように見えます。 単純に「ゼロ値を含む行を削除する」簡単な方法が必要です。 誰かがこれを達成するために書くべきコードを教えてもらえますか?

11
冗長性の少ないPythonで2次元のnumpy配列を正規化する方法は?
与えられた3×3numpy配列 a = numpy.arange(0,27,3).reshape(3,3) # array([[ 0, 3, 6], # [ 9, 12, 15], # [18, 21, 24]]) 私が考えた2次元配列の行を正規化するために row_sums = a.sum(axis=1) # array([ 9, 36, 63]) new_matrix = numpy.zeros((3,3)) for i, (row, row_sum) in enumerate(zip(a, row_sums)): new_matrix[i,:] = row / row_sum もっと良い方法があるはずですよね? おそらく明確にするために:私が意味する正規化とは、行ごとのエントリの合計が1でなければなりません。しかし、それはほとんどの人にとって明らかだと思います。



3
numpy.timedelta64値から日を抽出する
私はpandas / pythonを使用しており、日付/時刻を含むdfのフィールドで「to_datetime」関数を使用して生成された2つの日付時系列s1とs2があります。 s2からs1を引くと s3 = s2-s1 タイプのシリーズs3を取得します timedelta64 [ns] 0 385 days, 04:10:36 1 57 days, 22:54:00 2 642 days, 21:15:23 3 615 days, 00:55:44 4 160 days, 22:13:35 5 196 days, 23:06:49 6 23 days, 22:57:17 7 2 days, 22:17:31 8 622 days, 01:29:25 9 79 days, 20:15:14 …
87 python  numpy  pandas 

13
ValueError:numpy.dtypeのサイズが間違っています。再コンパイルしてみてください
Python2.7にpandasand statsmodelsパッケージをインストールしました。「importpandasas pd」を実行しようとすると、このエラーメッセージが表示されます。誰か助けてもらえますか?ありがとう!!! numpy.dtype has the wrong size, try recompiling Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\formula\__init__.py", line 4, in <module> from formulatools import handle_formula_data File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\formula\formulatools.p y", line 1, in <module> import statsmodels.tools.data as data_util File "C:\analytics\ext\python27\lib\site-packages\statsmodels-0.5.0-py2.7-win32.egg\statsmodels\tools\__init__.py", li ne 1, in <module> from …

7
numpy配列から別の配列にデータをコピーする方法
配列aのアドレスを変更せずに、配列bから配列aにデータをコピーする最速の方法は何ですか。外部ライブラリ(PyFFTW)が変更できない配列へのポインタを使用するため、これが必要です。 例えば: a = numpy.empty(n, dtype=complex) for i in xrange(a.size): a[i] = b[i] ループなしでそれを行うことは可能ですか?
86 python  numpy 

11
PythonとNumPyを使用した非常に大きな行列
NumPyは非常に便利なライブラリであり、それを使用することで、非常に大きな(10000 x 10000)行列を簡単に処理できることがわかりましたが、はるかに大きな行列(50000 x 50000の行列を作成しようとしています)に苦労し始めます。失敗します)。明らかに、これは大量のメモリ要件のためです。 なんらかの方法で(数テラバイトのRAMを使用せずに)NumPyでネイティブに巨大なマトリックス(たとえば100万×100万)を作成する方法はありますか?
86 python  matrix  numpy 

5
Pythonでx [x <2] = 0とはどういう意味ですか?
私は次のような行を持ついくつかのコードに出くわしました x[x&lt;2]=0 バリエーションをいじってみても、私はまだこの構文が何をするのか悩んでいます。 例: &gt;&gt;&gt; x = [1,2,3,4,5] &gt;&gt;&gt; x[x&lt;2] 1 &gt;&gt;&gt; x[x&lt;3] 1 &gt;&gt;&gt; x[x&gt;2] 2 &gt;&gt;&gt; x[x&lt;2]=0 &gt;&gt;&gt; x [0, 2, 3, 4, 5]

12
Numpy:範囲内の要素のインデックスを見つける
たとえば、数字の配列がたくさんあります。 a = np.array([1, 3, 5, 6, 9, 10, 14, 15, 56]) 特定の範囲内の要素のすべてのインデックスを検索したいと思います。たとえば、範囲が(6、10)の場合、答えは(3、4、5)になります。これを行うための組み込み関数はありますか?
85 python  numpy 

4
matplotlibでバーの高さが合計1になるようにヒストグラムをプロットするにはどうすればよいですか?
matplotlibを使用して、ベクトルから正規化されたヒストグラムをプロットしたいと思います。私は以下を試しました: plt.hist(myarray, normed=True) と同様: plt.hist(myarray, normed=1) ただし、どちらのオプションも[0、1]からy軸を生成せず、ヒストグラムのバーの高さが合計して1になります。このようなヒストグラムを生成したいのですが、どうすればよいですか?

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