frompyfuncを用いて多次元配列内の各配列を引数として関数に与えたいのですが
エラーが出てうまくいきません
※関数は入力arrayに対して計算を行いarrayを出力する(for文での動作確認済み)
入力
ndarray_in
python
1[[ 0.001 0.003 0.004 0.002] 2 [ 0.001 -0.001 0.004 0.002] 3 [ 0.004 -0.001 0.002 0.002] 4 [ 0.004 -0.001 0.004 0.004] 5 [ 0.004 -0.001 -0.001 0.002]]
出力
array_out
python
1[[ 0.001 0.003 0.002] 2 [ 0.001 0.004 0.002] 3 [-0.001 0.002 0.002] 4 [ 0.004 -0.001 0.004] 5 [ 0.004 -0.001 0.002]]
python
1class Calc: 2 3 def calc_test(self, array_in): 4 何かしらの計算 5 return array_out 6 7calc = Calc() 8 9calcF = np.frompyfunc(calc.calc_test, 1, 1) 10ndarray_out = calcF(ndarray_out) 11
Error
**ndarray_out = calc(ndarray_out)**でエラーが出ます
axis -1 is out of bounds for array of dimension 0
詳細
989 else:
990 a = asanyarray(a).copy(order="K")
--> 991 a.sort(axis=axis, kind=kind, order=order)
992 return a
#参考にしたもの
np.vectorizeを用いてみましたが同じエラー文がでます
python
1# PYTHON_NUMPY_FROMPYFUNC 2 3import numpy as np 4 5# binをユニバーサル関数に変換 6ubin = np.frompyfunc(bin, 1, 1) 7 8# 配列を用意 9num = np.array([1, 2, 3, 4, 5]) 10 11# numの要素を2進数表記に変換 12x = ubin(num) 13 14print(x)
下記のコードは特に軸とか選択してないと思うのですがlistだから動くのでしょうか?
python
1import numpy as np 2 3varMat = [[1,2], [3,4]] 4print(f"{type(varMat)}{varMat}") 5 6def addOne(var): 7 var = var + 1 8 return var 9 10f = np.vectorize(addOne) 11varMat = f(varMat) 12print(varMat)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。