sklearnのpairwise_kernelsの引数について

投稿者: user28277 環境: Macbook air, Jupyter-Notebook, Python2.7 Kernel K-meansを実装する際、一部この方のコードを参考にしました。 具体的には def _get_kernel(self, X, Y=None): if callable(self.kernel): params = self.kernel_params or {} else: params = {“gamma”: self.gamma, “degree”: self.degree, “coef0″: self.coef0} return pairwise_kernels(X, Y, metric=self.kernel, filter_params=True, **params) ここの部分です。”callable()”と” **params “の使い方がわかりません。加えて @property def _pairwise(self): return self.kernel == “precomputed” ここもどういったものになっているのかわかりません。具体的には@propertyと”precomputed”です pythonはおろかプログラミングも完全素人なのでstep by stepで例など込みで教えてもらえると助かります。よろしくお願いします。 以下にリンクを貼っておきます。 sklearnのリンク 解決 はじめに 分からない関数や書き方があったとき、まずは…(Continue Reading)

kivyでインスタンス?をまたいで変数代入ができない

投稿者: user28277 kivyで簡単なプログラムを試しに作っていたんですが 題にあるよう、インスタンス?をまたいでの変数代入を行うとエラーがおきます TypeError: ‘kivy.properties.DictProperty’ object has no attribute ‘__getitem__’ class pullscreen(Screen): def clicked(self): x = np.random.randint(1,10,1) if x == 5: result.ids[“res”].text = “1” elif x % 2 == 0: result.ids[“res”].text = “2” else: result.ids[“res”].text = “3” sm.current = “ans” class result(Screen): def back(self): sm.current = “pull” self.idsとするとそのインスタンス内の変数を指定するため望む結果が得られません。 どうすれば良いのでしょうか?よろしくお願いします pyファイル from kivy.config import Config…(Continue Reading)

Python2.7で、文字列の文字それぞれのバイト数を知りたい

投稿者: Anonymous やりたいこと: 4byte文字と3byte文字が混在しているutf8の文字列の場合、4byte文字が混ざっていることを検出したい (文字コード等への理解が浅い者です) 例えば「?田直樹」という文字列があったとします。 一文字目が異体字で4byte、他の3文字はそれぞれ3byteです。こういった入力を許容できない文字として判別したいです。 一文字ずつループしてlen()などで見たらいいのかと思いきや、 s=”?田直樹” for x in s.decode(“utf8”):print(x) ??? ??? 田 直 樹 こうなってしまい、一文字ずつ調べるといったことができずに困っています。 文字列をunicodeに変換した際のことですが、下記のように問題の一文字目だけがUで開始していることに気づきました。これを判別の材料にできないかと思っているのですが、どうするとこの記号を検出できるのかがわかっておりません。(この判別方法が正しいのかも自信がありません) s.decode(“utf8”) >>> u’U00020bb7u7530u76f4u6a39′ Uで始まる文字があったらそれは許容できない文字として判定しようとした場合、どのようにすると実現可能でしょうか。 解決 すでに解決されているそうですが、個人的にはもっとスマートにできると思います。 が、その前に最初の問題について。 自分も最初、unicodeに変換すればいいでしょ、と思いましたが、 Python/C API リファレンス – Unicodeオブジェクトとcodec – Unicode型 Py_UNICODE この型は Unicode 序数 (Unicode ordinal) を保持するための基礎単位として、 Python が内部的に使います。 Python のデフォルトのビルドでは、 Py_UNICODE として 16-bit 型を利用し、 Unicode の値を内部では UCS-2 で保持します。 UCS4…(Continue Reading)

docker コンテナとjupyter について

投稿者: Anonymous 最近 Docker の勉強を初めました。 初心者です。 以下のような運用方法を考えているのですが、可能でしょうか。 可能であれば、参考になるサイトなど教えていただきたく思います。 私は普段Jupyterを使用しています。 自分で新しいPCを購入する度、会社から新しいPCが支給されるたびに Python、Jupyter の環境を構築することがとてもめんどくさく感じています。 とくに、extension 周りのエラーなどは毎回悩まされます。 そこで、Docker を使ってこの辺の運用を楽にしたいと考えています。 以下のような方法をするにはどのようにすればいいのでしょうか。 jupyter 用のcontainer を作る python(環境) 用のcontainer を作る(例:python2, python3) 用途に応じて jupyter container + python2 container または、jupyter containter + python3 container と使い分ける この方法であれば、python2, python3 のそれぞれのコンテナにjupyter を入れる必要もなく、一度jupyter の環境を作ればいいので、楽かなと思っています。 上記方法が可能かご教授頂ければ幸いです。 初質問ですので、言葉足らずかもしれませんが よろしくお願いします。 解決 Docker は「ふたつのコンテナイメージを足す」ことはできません。「あるコンテナイメージを元に追記していく」という直感の方が合っています。 Jupyter Notebook は前提として Python がインストールされていないと動きません。このため、設計としては: Python 2 イメージの上に…(Continue Reading)

辞書型において、タプルのキーが重複する場合、上書きせず連結する方法

投稿者: Anonymous プログラミング初心者です。(Python2.7・Iron Python使用) タプルを含んだキーを持つ辞書型のリストにおいて、キーが重複する際、値を足して1つの辞書型にマージしたいと思っています。 用途としては、簡単な施設動線のヒートマップの作成です。キーに平面座標、値にその座標の上を人が通過した回数です。 つまり下記のような、 リスト=[{(x座標,y座標) : 回数 , (x座標,y座標) : 回数,} , {(x座標,y座標) : 回数 , (x座標,y座標) : 回数},{}…] を1つの辞書型にマージする際、同じ座標の上を通過した回数は足して表示したいという事です。 例えば、 dict_list = [{(1,2):10, (1,3):10, (2,4):10} , {(1,2):15, (2,3):15, (2,4):15} , {(1,1):3 ,(2,2):3 }, {(1,1):60, (1,2):60}] を dict = {(1,1):63, (1,2):85, (1,3):10, (2,2):3 , (2,3):15, (2,4):25} という感じにしたいです。 collections importによるCounterを使用して解決できましたが、Iron pythonを使用しているため、ライブラリーのimportなしで解決したいです。最後に平面座標とその合計回数が分かる形なら辞書型でなくても構いません。 何卒よろしくお願い致します。 解決…(Continue Reading)

Python2のOpenCV3でエラー

投稿者: Anonymous 画像をグレイスケールに変換しようといましたがcvが見当たらないというエラーがでてしまいました。 エラー Traceback (most recent call last): File “face_recognition.py”, line 13, in <module> image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY) AttributeError: ‘module’ object has no attribute ‘cv’ コード #conding:utf-8 import cv2 cascade_path = “/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml” image_path = “lena.png” color = (255, 255, 255) image = cv2.imread(image_path) image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY) cascade = cv2.CascadeClassifier(cascade_path) facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1,…(Continue Reading)

go-pythonの使い方を教えてください。

投稿者: Anonymous いつもお世話になります。 goについて教えてください。github上に公開されている、goからpythonのコードをよぶためのライブラリの利用法がよく分からないのでご教授をお願いします。以下です。 https://github.com/sbinet/go-python こちらのライブラリは3系では、動かず、2系でうごくようです。間違っていたらすいません。 例えば // sample.py print “Hello world!” をよびだすためには、go側をどのようにソースを書けば良いのかわからず悩んでいます。 よろしくお願いします。 解決 README.md に書いてあるとおり、go-python は基本的に Python/C API for CPython 2 を Go 1 向けに移植したものなので、Python/C API のサンプルコードを探すのが分かりやすいと思います。go-python はどちらかというと Python を拡張するモジュールを Go で書くためのものですが、一応 PyRun_SimpleFile を使うと外部の Python スクリプトを実行することができます。 package main import ( “github.com/sbinet/go-python” ) func init() { err := python.Initialize() if err != nil {…(Continue Reading)

pip でインストールエラー: Command “python setup.py egg_info” failed

投稿者: Anonymous 現在、Windows10でanaconda2環境があります。 そこで、他のモジュールをpipでインストールしようとすると、決まって次のインストールエラーが生じます。 Command “python setup.py egg_info” failed with error code 1 in c:users********appdatalocaltemppip-install-d32tg1unroll このエラーは一体どんなエラーなのでしょうか。 対応策がありましたら、教えて頂けないでしょうか。 よろしくお願いします。 解決 このエラーはunrollというパッケージをインストールするのに失敗しているのが原因です。 英語版でも同じ質問 “pip install unroll”: “python setup.py egg_info” failed with error code 1 があって、プラス投票が227あって、このエラーに困っている人が多くいるのではないかと思います。また、回答が18というのはかなり混乱した状態です。 このエラーの原因には、2つの要素が絡んでいるのが、英語版の方で混乱している理由です。 1番目は、pipにバグがあったことです。インストール中にエラーになれば、インストールせずに終了しないといけないのに、中途半端な処理が行われ結果として毎回エラーになるというバグです。このバグについては修正されているので、pipとsetuptoolsをアップグレードすることで解消できます。pipとsetuptoolsのアップグレードは以下のようにしてできます。 pip install –upgrade pip setuptools ただし、anacondaの場合は、 conda update pip setuptools 2番目は、unrollのパッケージににもバグがあります。 メンテナンスされているパッケージであれば、バグがあれば修正されるのでpip install unrollとすればすむことなのですが、unrollというパッケージが2014年4月16日に公開されて以降全くサポートがされていません。それで、pip install unrollで発生するエラーを自分で解消する必要があります。 pip install unrollとすると、まず、ez-setupというパッケージがないというエラーが出るので、ez-setupをインストールします。 pip…(Continue Reading)

Python 2.7.10 Kivyにてon_key_up、_on_keyboard_up等が使用できない?

投稿者: Anonymous Kivyにてこのプログラムを実行すると、 TypeError: _on_keyboard_up() takes exactly 5 arguments (3 given) と出てしまうのですが、何か間違っているところがあれば指摘お願い致します。 on_key_up、_on_keyboard_up等が使用できないのであれば、キーを押している間やまたはキーを離した後という事をKivy内で判定できる他の方法を教えていただければ幸いです。 main.py #-*- coding: utf-8 -*- from kivy.config import Config Config.set(‘graphics’, ‘width’, ‘800’) Config.set(‘graphics’, ‘height’, ‘600’) from kivy.app import App from kivy.uix.widget import Widget from kivy.core.window import Window from kivy.uix.screenmanager import ScreenManager, Screen from kivy.properties import NumericProperty, ReferenceListProperty, ObjectProperty, ListProperty from kivy.clock import…(Continue Reading)

py.exe で python2.7.17 が起動しません

投稿者: Anonymous Python 2.7.17 インストールにあたり、下記サイトを参考にさせていただきました。 https://www.python.jp/install/windows/install_py2.7.html 私の windows10 は 64bit版なので Windows x86-64 MSI installer をダウンロードし、 c: にインストールしました。 そして上記サイトによれば、 Pythonの拡張モジュールをインストールする際に、Cコンパイラが必要となる場合があります。 とのことなので、Microsoft Visual C++ Compiler for Python 2.7 もダウンロードし、インストールしました。が、コマンドプロンプトで py.exe を打っても Python が起動しません。 C:Userskyoko>py.exe ‘py.exe’ は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:Userskyoko> https://www.python.jp/install/windows/py_launcher.html によると、 py.exe は環境変数に設定しなくても構わないそうですが、何かが足りないのでしょうか? https://www.javadrive.jp/python/install/index3.html を参考に環境変数にc:python27を追加もしてみましたが、py.exe と打つと見つからない、 python.exe と打つとマイクロソフトストアで python3 を入手するかと窓が出ます。 毎度コマンドプロンプトで cd を使ってディレクトリ変更の必要があるのでしょうか? c:python27 に python.exe は存在します。が、py.exe は見つかりません。 そして、スタートボタンから Python2.17…(Continue Reading)

文字の取り出し方

投稿者: Anonymous Python2.7.10/初心者 GitHubからimportしてきた関数についての質問です。 Card(‘A’)この様な関数からAを取り出すには、どの様にすればいいですか。 from poker import Card deck = list(Card) hand = [deck.pop() for __ in range(2)] このhandに入っているCard(‘A’)です。 返信の回答になっているか分かりませんがよろしくお願いします。 解決 次のようにrank.valでトランプの数字をAのような文字にしたものが取得できます。また、str(Card(u’As’).rank)でも同じように取得できます。str(Card(u’As’))とすると’A♠’が取得できるのでstr(Card(u’As’))[0]でも取得可能です。 c = Card(u’As’) s = c.rank.val なお、python2.7の場合、rank.valで取得すると文字コードがunicodeで、strを使うと文字コードが’utf-8’になることに注意してください。 理由は、Cardの最初の文字はRankを表しますが、そのクラスRankが以下のように定義されています。https://github.com/pokerregion/poker/blob/master/poker/card.py class Rank(PokerEnum): __order__ = ‘DEUCE THREE FOUR FIVE SIX SEVEN EIGHT NINE TEN JACK QUEEN KING ACE’ DEUCE = ‘2’, 2 #中略 NINE =…(Continue Reading)

pyenvを使ったPython2.7からPython3.5へバージョンアップの方法を教えていただけますか?

投稿者: Anonymous 独学で学習を始めた超初心者です。 Pythonをバージョンアップしたいのですが、どうしてもうまくいきません。 自分で色々調べ、pyenvを使用して Python3.5 をインストールしたのですが、切り替えがうまくいかないようです。 ↓試した記事 https://qiita.com/1000ch/items/93841f76ea52551b6a97 ↓試した手順 ▼pyenv で Pythonをインストール$ pyenv install 3.5.9 ▼上記記事の指示のまま$ pyenv rehash ▼使う Python を指定する$ pyenv global 3.5.9 ▼以下の通り、パスが .pyenv 配下の pythonを向かない。 $ which python /usr/bin/python OS=macOS Catalina 現状以下のバージョンです。 $ python –version Python 2.7.16 Python2.7.16のファイルパスは以下です。 $ which python /usr/bin/python pyenvのファイルパス $ which pyenv /usr/local/bin/pyenv pyenvのバージョン $ pyenv versions…(Continue Reading)

Amazon LinuxにpyenvでPython2.6.9を入れようとするとBUILD ERRORになる

投稿者: Anonymous はじめに 環境 OS: Amazon Linux version 2018.03 (Vagrant/VirtualBoxによってMacOS上に用意した仮想環境、mvbcoding/awslinuxを使用) Python: 2.7.12 (AWSに最初から入っていたPython) 問題点 上記環境にpyenvを用いてPython2.6.9をインストールして動作確認テストしようとしました。 まず下記のようなコマンドを打ってpyenvをインストールした。 $ yum install git $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv ※この後、pyenvを用いたpython環境構築手順(CentOS7.1) を参考に .bash_profile も編集した $ pyenv –version pyenv 1.2.21 その後、pyenvを使ってPython2.6.9をインストールするためrootユーザーに入った上で pyenv install 2.6.9 と打ったところ下記のエラーが出た。(pyenv install –listで2.6.9があるのは確認済。) [[email protected] ~]# pyenv install 2.6.9 Downloading Python-2.6.9.tgz… -> https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz Installing Python-2.6.9… /root/.pyenv/plugins/python-build/bin/python-build: line 1539:…(Continue Reading)

Kernel K-means 実装 in Python

投稿者: user28277 環境: Mac, Jupyter-Notebook, Python2.7 Kernel K-meansを実装したんですが、うまく動作しません。コードにエラーは出ません。どこかの計算が間違っているんだと思いますが、どこかわからないので誰か助けてください。 Algorithmについてはこちらがわかりやすいかと思います Link_01 Link_02 とりあえずデータを貼ります、下に実際のコードを書きました。 from sklearn.metrics.pairwise import pairwise_kernels class Kernel_Kmeans(object): def __init__(self, n_clusters=3, max_iter=50, kernel=”linear”, gamma=None, degree=3, coef0=1, kernel_params=None): self.n_clusters = n_clusters self.max_iter = max_iter self.kernel = kernel self.gamma = gamma self.degree = degree self.coef0 = coef0 self.kernel_params = kernel_params def kernel_matrix(self, X, Y = None): if…(Continue Reading)