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

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

ただいまの
回答率

91.09%

  • Python 3.x

    3138questions

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

pythonでのSyntaxError

解決済

回答 3

投稿

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

ruuruusann24

score 6

ここで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:56

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

    キャンセル

  • 2017/11/24 14:57

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

    キャンセル

  • 2017/11/24 14:58

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

    キャンセル

+1

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

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

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

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

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 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.09%

関連した質問

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

  • Python 3.x

    3138questions

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