質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

564閲覧

Cythonで、配列の中にnumpyのndarrayが入った変数をコンパイルしたい

sakami_kosuke

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/09/20 08:47

編集2018/09/21 02:21

前提・実現したいこと

cythonで、配列の中にnumpyのndarrayが入った、次のような変数をコンパイルしたいです。

[array([[4.84491686e-08, 9.97148999e-01, 1.30226804e-03, ..., 2.34065851e-08, 3.55600949e-08, 8.29578395e-11], ..., [2.48330784e-14, 1.13642053e-06, 8.07854730e-11, ..., 1.68682370e-09, 6.00072085e-12, 8.09837433e-17]])]

shapeはこんな感じ。

[(194, 30), (349, 30), (246, 30), (356, 30), ..., (1016, 30), (218, 30)]

発生している問題・エラーメッセージ

utils.pyx:32:56: Expected ']', found '='

該当のソースコード

cython

1vector[np.ndarray[DTYPE_t, ndim=2]]

cython

1np.ndarray[DTYPE_t, ndim=2][:]

上の両方とも、うまくいきませんでした。
なにかうまい方法があれば、ご教授いただきたいです。

サンプルコード

import numpy as np cimport numpy as np from libcpp.vector cimport vector DTYPE = np.float32 ctypedef np.float32_t DTYPE_t def calc_n(int M, int K, vector[np.ndarray[DTYPE_t, ndim=2]] Pi, vector[np.ndarray[DTYPE_t, ndim=2]] Freqs): cdef np.ndarray[DTYPE_t, ndim= 2] ni_k cdef np.ndarray[DTYPE_t, ndim= 1] n__k cdef int i ni_k = np.empty((M, K), dtype=np.float32) for i in range(M): ni_k[i] = np.sum(Pi[i] * Freqs[i][:, None], axis=0) n__k = np.sum(ni_k, axis=0) return ni_k, n__k

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

opyon

2018/09/20 11:00

サンプルデータはコピペするだけで使える形式にしたほうが回答を得やすいと思いますよ。(もしかすると)加工しないと使えないデータしか無い質問はそれだけでそっ閉じされているかもしれません。
sakami_kosuke

2018/09/21 01:14

ご指摘ありがとうございます。質問にサンプルコードを追記しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問