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

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

3
時間:2019-02-09 09:18:39.0ラベル:python numpy machine epsilon
マシンイプシロンとは何かを理解しようとしています。ウィキペディアによると、次のように計算できます。 def machineEpsilon(func=float): machine_epsilon = func(1) while func(1)+func(machine_epsilon) != func(1): machine_epsilon_last = machine_epsilon machine_epsilon = func(machine_epsilon) / func(2) return machine_epsilon_last ただし、倍精度の数値にのみ適しています。単精度数もサポートするように変更することに興味があります。私はnumpy、特にnumpy.float32クラスを使用できることを読みました。誰かが関数の変更を手伝ってくれる?
103 python  numpy  epsilon 

6
numpy.arrayが等しいことをアサートする最良の方法は?
アプリの単体テストを作成したいのですが、2つの配列を比較する必要があります。array.__eq__新しい配列を返すので(TestCase.assertEqual失敗する)、等価性をアサートする最良の方法は何ですか? 現在使用しています self.assertTrue((arr1 == arr2).all()) しかし、私はそれが本当に好きではありません

5
NumPy配列に少なくとも1つの非数値が含まれているかどうかを検出しますか?
入力に数値以外の値が少なくとも1つ含まれているかどうかを検出する関数を作成する必要があります。数値以外の値が見つかった場合は、エラーが発生します(計算では数値のみが返されるため)。入力配列の次元数は事前にわかっていません-関数はndimに関係なく正しい値を与える必要があります。追加の複雑さとして、入力は単一の浮動小数点数、numpy.float64またはゼロ次元配列のような奇妙なボールでさえあります。 これを解決する明白な方法は、非反復が見つかるまで配列内のすべての反復可能なオブジェクトを反復する再帰関数を記述することです。これは、numpy.isnan()すべての反復不可能なオブジェクトに関数を適用します。少なくとも1つの非数値が見つかった場合、関数はすぐにFalseを返します。それ以外の場合、イテラブルのすべての値が数値の場合、最終的にTrueを返します。 これは問題なく動作しますが、非常に遅く、NumPyを使用する方がはるかに優れた方法であると思います。より速く、より派手な代替手段は何ですか? これが私のモックアップです: def contains_nan( myarray ): """ @param myarray : An n-dimensional array or a single float @type myarray : numpy.ndarray, numpy.array, float @returns: bool Returns true if myarray is numeric or only contains numeric values. Returns false if at least one non-numeric value exists Not-A-Number is given …
103 python  numpy 

3
コピーでのNumpy配列の割り当て
例えば、我々は持っている場合はnumpy、配列をA、私たちは望んnumpy配列Bと同じ要素を持つが。 次の(下記を参照)メソッドの違いは何ですか?追加のメモリはいつ割り当てられ、いつ割り当てられませんか? B = A B[:] = A(B[:]=A[:]?と同じ) numpy.copy(B, A)
103 python  arrays  numpy 

4
numpy.array()データを適切に保存およびロードする方法は?
どうやってnumpy.arrayデータを適切に保存してロードするのか。現在、私はnumpy.savetxt()メソッドを使用しています。たとえば、markers次のような配列を取得したとします。 私はそれを使ってそれを保存しようとします: numpy.savetxt('markers.txt', markers) 他のスクリプトでは、以前に保存したファイルを開こうとします。 markers = np.fromfile("markers.txt") そして、それは私が得るものです... 保存されたデータは、最初は次のようになります。 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 しかし、同じ方法を使用してロードしたデータを保存すると、numpy.savetxt()次のようになります。 1.398043286095131769e-76 1.398043286095288860e-76 1.396426376485745879e-76 1.398043286055061908e-76 1.398043286095288860e-76 1.182950697433698368e-76 1.398043275797188953e-76 1.398043286095288860e-76 1.210894289234927752e-99 1.398040649781712473e-76 何が悪いのですか?PS私が実行する他の「バックステージ」操作はありません。保存してロードするだけで、それが実現します。前もって感謝します。
103 python  arrays  numpy 

8
AlpineLinuxにPandasをインストールするのに何年もかかるのはなぜですか
ベースOSのAlpineとCentOSまたはDebianを使用してDockerコンテナにPandasとNumpy(依存関係)をインストールするのにはるかに時間がかかることに気づきました。以下に、時差を示すための小さなテストを作成しました。AlpineがPandasとNumpyをインストールするためにビルドの依存関係を更新およびダウンロードするのにかかる数秒を除いて、setup.pyがDebianのインストールよりも約70倍長い時間がかかるのはなぜですか? Alpineをベースイメージとして使用してインストールを高速化する方法はありますか、またはPandasやNumpyなどのパッケージに使用するのに適したAlpineに匹敵するサイズの別のベースイメージがありますか? Dockerfile.debian FROM python:3.6.4-slim-jessie RUN pip install pandas Pandas&NumpyでDebianイメージをビルドします。 [PandasDockerTest] time docker build -t debian-pandas -f Dockerfile.debian . --no-cache Sending build context to Docker daemon 3.072kB Step 1/2 : FROM python:3.6.4-slim-jessie ---> 43431c5410f3 Step 2/2 : RUN pip install pandas ---> Running in 2e4c030f8051 Collecting pandas Downloading pandas-0.22.0-cp36-cp36m-manylinux1_x86_64.whl (26.2MB) …
103 pandas  numpy  docker  alpine 

4
numpyで要素ごとの行列乗算(アダマール積)を取得するにはどうすればよいですか?
2つの行列があります a = np.matrix([[1,2], [3,4]]) b = np.matrix([[5,6], [7,8]]) そして私は、要素ごとの積を取得したい[[1*5,2*6], [3*7,4*8]]等しく、 [[5,12], [21,32]] 私が試してみました print(np.dot(a,b)) そして print(a*b) しかし、どちらも結果を出します [[19 22], [43 50]] これは要素ごとの積ではなく、行列積です。組み込み関数を使用して要素ごとの積(別名アダマール積)を取得するにはどうすればよいですか?

2
Python / numpy / pandasで任意のオブジェクトがNaNであるかどうかを効率的にチェックしていますか?
私の派手な配列はnp.nan欠損値を指定するために使用します。データセットを反復処理するとき、そのような欠損値を検出して特別な方法で処理する必要があります。 単純に私はを使用しましたがnumpy.isnan(val)、がvalサポートするタイプのサブセットに含まれない限り、うまく機能しnumpy.isnan()ます。たとえば、不足しているデータが文字列フィールドで発生する可能性があります。その場合、次のようになります。 >>> np.isnan('some_string') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: Not implemented for this type 例外をキャッチして返す高価なラッパーを作成する以外Falseに、これをエレガントかつ効率的に処理する方法はありますか?
101 python  numpy  pandas 

2
'DataFrame'オブジェクトには属性 'sort'がありません
私はここでいくつかの問題に直面しています、私のpythonパッケージでnumpyをインストールしましたが、まだこのエラーがあります'DataFrame'オブジェクトには属性 'sort'がありません 誰でも私にいくつかのアイデアを与えることができます。 これは私のコードです: final.loc[-1] =['', 'P','Actual'] final.index = final.index + 1 # shifting index final = final.sort() final.columns=[final.columns,final.iloc[0]] final = final.iloc[1:].reset_index(drop=True) final.columns.names = (None, None)

4
Numpy isnan()は、floatの配列で失敗します(pandasデータフレームの適用から)
私はパンダのデータフレームの適用から出てくるフロートの配列(いくつかの通常の数、いくつかのナン)を持っています。 何らかの理由で、この配列でnumpy.isnanが失敗していますが、以下に示すように、各要素は浮動小数点数であり、numpy.isnanは各要素で正しく実行され、変数の型は間違いなくnumpy配列です。 どうしたの?! set([type(x) for x in tester]) Out[59]: {float} tester Out[60]: array([-0.7000000000000001, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, …
101 python  arrays  numpy  pandas 

11
配列を2回並べ替えることなく、Python / NumPyを使用して配列内の項目をランク付けします
数値の配列があり、最初の配列の各項目のランクを表す別の配列を作成したいと思います。PythonとNumPyを使用しています。 例えば: array = [4,2,7,1] ranks = [2,1,3,0] これが私が思いついた最良の方法です: array = numpy.array([4,2,7,1]) temp = array.argsort() ranks = numpy.arange(len(array))[temp.argsort()] 配列を2回ソートすることを避けるより良い/より速い方法はありますか?
100 python  sorting  numpy 

10
リストから外れ値を拒否するための派手な組み込みがありますか
次のようなことをするための派手な組み込みはありますか?つまり、リストdを取得し、filtered_dの点の想定分布に基づいて外れている要素を削除したリストを返しdます。 import numpy as np def reject_outliers(data): m = 2 u = np.mean(data) s = np.std(data) filtered = [e for e in data if (u - 2 * s < e < u + 2 * s)] return filtered >>> d = [2,4,5,1,6,5,40] >>> filtered_d = reject_outliers(d) >>> print filtered_d …
100 python  numpy 

2
numpy配列をh5pyに入出力
出力がサイズ指定された行列で、エントリがすべてtypeであるPythonコードがありますfloat。拡張子を付けて保存すると、.datファイルサイズは500 MB程度になります。を使用h5pyすると、ファイルサイズが大幅に縮小されることを確認しました。したがって、という名前の2D numpy配列があるとしAます。どうすればh5pyファイルに保存できますか?また、配列を操作する必要があるので、同じファイルを読み取って、それを別のコードの派手な配列として配置するにはどうすればよいですか?
100 python  arrays  numpy  h5py 

8
ゼロ除算で0を返す方法
私はpythonで要素ごとの除算を実行しようとしていますが、ゼロが検出された場合は、商をゼロにする必要があります。 例えば: array1 = np.array([0, 1, 2]) array2 = np.array([0, 1, 1]) array1 / array2 # should be np.array([0, 1, 2]) データを常にforループで使用することもできますが、numpyの最適化を実際に使用するには、エラーを無視するのではなく、ゼロエラーで除算するとゼロを返す除算関数が必要です。 私が何かを見逃していない限り、numpy.seterr()はエラー時に値を返すことができないようです。エラー処理で自分の除算を設定しているときに、私がいかにnumpyを最大限に活用できるかについて他の提案がありますか?

3
numpy配列のリストを単一のnumpy配列に変換するにはどうすればよいですか?
私が持っていると仮定します。 LIST = [[array([1, 2, 3, 4, 5]), array([1, 2, 3, 4, 5],[1,2,3,4,5])] # inner lists are numpy arrays 私は変換しようとします。 array([[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]) 私は今、vstackの反復によってそれを解決していますが、特に大きなLISTの場合は本当に遅いです 最も効率的な方法として何を提案しますか?
100 python  list  numpy 

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