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

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

ただいまの
回答率

91.35%

  • Python 3.x

    2410questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pythonでのSyntaxError

解決済

回答 3

投稿 2017/11/24 14:47

  • 評価
  • クリップ 0
  • VIEW 112

ruuruusann24

score 3

ここでshow_volonoi_with_metricsのなかで
xs = map(lambda p: p[0], cluster_points)
SyntaxError: invalid syntax
というエラーが出てしまいます。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
%matplotlib inline

def label_cluster_num(means, mesh_points, metrics):
def label(point):
cluster_label = np.argmin(map(lambda mean: metrics(mean, point), means))
return point, cluster_label
return map(label, mesh_points)

c_means = np.array([[1, 2], [-3, 4], [-5, -6], [7, -8]])
xs = np.linspace(-10, 10, 100)
ys = np.linspace(-10, 10, 100)
xx, yy = np.meshgrid(xs, ys)
mesh_points = np.c_[xx.ravel(), yy.ravel()]

def show_volonoi_with_metrics(metrics):
labeled_mesh_points = label_cluster_num(c_means, mesh_points, metrics=metrics)
plt.figure()
fig, ax = plt.subplots()

ax.set_aspect('equal')
ax.grid(True, which='both')
ax.axhline(y=0, color='k')
ax.axvline(x=0, color='k')
ax.set_xlim([-10, 10])
ax.set_ylim([-10, 10])

for i in range(0, len(c_means)):
cluster_points = map(lambda p, label: p, filter(lambda p, label: label == i, labeled_mesh_points)
xs = map(lambda p: p[0], cluster_points)
ys = map(lambda p: p[1], cluster_points)
ax.scatter(xs, ys, color=cm.prism(i / float(len(c_means))), marker='.')

ax.scatter(map(lambda p: p[0], c_means), map(lambda p: p[1], c_means), color="g", marker='o')

plt.show()

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

一行前の括弧閉じが足りないからです。
質問の仕方について、直前(BAいただいてからこの質問まで3分)の回答で指摘しました。

質問の仕方について

teratailには、上記のようにコードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。

投稿 2017/11/24 14:51

編集 2017/11/24 14:56

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/24 14:56

    すみません、見落としていました。丁寧に教えてくださりありがとうございます

    キャンセル

  • 2017/11/24 14:57

    一気に書いて実行すると、特に慣れないうちはエラーが頻発します。
    段階的に書いて少しずつ機能を拡張した方が良いと思いますよ。

    キャンセル

  • 2017/11/24 14:58

    ありがとうございます、今後ともよろしくお願いします

    キャンセル

+1

素直なスライスではなくmap関数祭りをしている理由というのがあるのでしょうか?

xs = cluster_points[:, 0]
ys = cluster_points[:, 1]

投稿 2017/11/24 14:51

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

コーディング/考えるのがいやだ。質問するときのヒントを参考にして質問を詳細に書くのも面倒だ。
実行結果を見たいだけ
であれば[Python][Scipy] 様々な距離でボロノイ図を作成してみたを見ればよいかと思います。

投稿 2017/11/24 14:56

編集 2017/11/24 15:00

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/24 14:59

    この業界ではmap/filterを使うのが通例なのですね。
    numpyのスライスのほうが実行時間も速い気がするのですが…

    キャンセル

  • 2017/11/24 15:04

    (numpyの)学習コストとコーディング、実行速度を天秤にかけての選択かもしれません。
    pythonは道具が豊富でいろいろな書き方ができ便利な一方、初心者には理解しずらくなることも多い感じがします。

    キャンセル

  • 2017/11/24 15:08

    確かに一応外部ライブラリに分類されますね。
    ただ、書き方が直感的ではないので、すごく読みにくいのが難点ですね。
    自分がインタープリタになった気分です。

    キャンセル

  • 2017/11/24 15:21

    あ、map/filterなどの高階関数でコード書いてると、知恵熱なのか脳内麻薬なのかが出てきてファーっと気分良くなることがあります。
    でも麻薬が切れた翌日には自分で書いたコードなのに解読するのに時間がかかるという。

    キャンセル

  • 2017/11/24 15:46

    ありますね。
    冴えている時に限って面倒なコードを書くので、
    いつもの冴えていない時に読み解けるわけがない事態に遭遇します。

    キャンセル

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

ただいまの回答率

91.35%

関連した質問

  • 解決済

    matplotlibで描く円グラフについて

    前提・実現したいこと matplotlibの持つ円グラフ描画メソッドpieで任意のカラーバリエーションで円グラフが描画出来るようにしたい 発生している問題・エラーメッセージ

  • 解決済

    Python - Flaskでmatplotlib...pltのパラメータが被ってハゲそう

    環境 Python 3.6.0 Heroku Flask 困っていること matplotlibを用いて、二種類のグラフ(線グラフと円グラフ)を別々に作りました。 し

  • 解決済

    3次元散布図のアニメーションプロット

    前提・実現したいこと Pythonで三次元散布図でのアニメーションを実装中に以下のエラーメッセージが発生しました。 発生している問題・エラーメッセージ Traceback

  • 解決済

    pandasで散布図を作成したい

    したいこと 下記のcsvファイルがあります X軸に乗客、y軸にうどんをセットして散布図を作成したいです。 駅,うどん,乗客 青井駅,9,1000 新橋駅,100,1000

  • 解決済

    グラフへの自動プロット

    いつもお世話になっております。 前提・実現したいこと プログラム(グラフ)を実行した状態のままCSVファイル(aiueo.csv)に値を追加(削除)した時に実行中のファイルに値

  • 解決済

    pythonのmatplotlibで3次元の直方体を描きたい

    pythonのmatplotlibのグラフ上に3次元の直方体を描きたいです.調べてみたらmplot3dなどを使えば出来そうな気がしましたが,使い方がよくわかりませんでした.pyth

  • 解決済

    Python 機械学習 クラスタリングについて

    「http://paiza.hatenablog.com/entry/2017/06/14/機械学習初心者向け、Pythonを使ってK-meansでクラスタリン」 の下の部分に乗っ

  • 解決済

    [Python]グラフ表示 matplotlib 構文?

    質問 グラフを表示させたいです。 list_If = calc.calculate(str(y), 1, imp_name)の部分で 別のソフトに値を渡して計算、その後matplo

同じタグがついた質問を見る

  • Python 3.x

    2410questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。