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

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

ただいまの
回答率

90.48%

  • Python 3.x

    6974questions

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

  • NumPy

    483questions

    NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

string から float に配列全体をキャストしたい

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,050
退会済みユーザー

退会済みユーザー

ValueError: could not convert string to float: 'rec_id'
とエラーが出ました。
コードには

import numpy as np
import pandas as pd
import scipy as sp
import  pickle
from scipy import fft
from time import localtime, strftime
import matplotlib.pyplot as plt
from skimage.morphology import  disk,remove_small_objects
from skimage.filter import rank
from skimage.util import img_as_ubyte 
import wave

###########################
# Folder Name Setting
###########################
folder = 'mlsp_contest_dataset/'


essential_folder = folder+'essential_data/'
supplemental_folder = folder+'supplemental_data/'
spectro_folder =folder+'my_spectro/'
single_spectro_folder =folder+'my_spectro_single/'
dp_folder = folder+'DP/'

###################################################
## Read the Essential Data 
## labels, training-test split,file_names etc.
###################################################

# Each audio file has a unique recording identifier ("rec_id"), ranging from 0 to 644. 
# The file rec_id2filename.txt indicates which wav file is associated with each rec_id.
rec2f = pd.read_csv(essential_folder + 'rec_id2filename.txt', sep = ',')

# There are 19 bird species in the dataset. species_list.txt gives each a number from 0 to 18. 
species = pd.read_csv(essential_folder + 'species_list.txt', sep = ',')
num_species = 19

# The dataset is split into training and test sets. 
# CVfolds_2.txt gives the fold for each rec_id. 0 is the training set, and 1 is the test set.
cv =  pd.read_csv(essential_folder + 'CVfolds_2.txt', sep = ',')

# This is your main label training data. For each rec_id, a set of species is listed. The format is:
# rec_id,[labels]
raw =  pd.read_csv(essential_folder + 'rec_labels_test_hidden.txt', sep = ';')
#label = np.zeros(len(raw)*num_species)
#label = label.reshape([len(raw),num_species])
label = np.zeros((len(raw),num_species))

for i in range(len(raw)):
    line = raw.iloc[i]
    labels = line[0].split(',')
    labels.pop(0) # rec_id == i
    #for c in labels[i]:
        #if(c =="?"):
            #label[i,c] = 1

label = pd.DataFrame(label)
label['rec_id'] = cv.rec_id
label['fold'] = cv.fold
label['filename'] = rec2f.filename

# Sparse training set 
# training species 1%--5%--20% 
spec_avg = label[label.fold ==0][:num_species].mean()
spec_avg.sort_values(inplace=True)
plt.plot(spec_avg,'go')


と書きました。
Tracebackには

/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/skimage/filter/__init__.py:6: skimage_deprecation: The `skimage.filter` module has been renamed to `skimage.filters`.  This placeholder module will be removed in v0.13.

  warn(skimage_deprecation('The `skimage.filter` module has been renamed '

Traceback (most recent call last):

  File "test1.py", line 67, in <module>

    plt.plot(spec_avg,'go')

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/pyplot.py", line 3317, in plot

    ret = ax.plot(*args, **kwargs)

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/__init__.py", line 1898, in inner

    return func(ax, *args, **kwargs)

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 1407, in plot

    self.add_line(line)

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 1793, in add_line

    self._update_line_limits(line)

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 1815, in _update_line_limits

    path = line.get_path()

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/lines.py", line 989, in get_path

    self.recache()

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/lines.py", line 676, in recache

    x = np.asarray(xconv, np.float_)

  File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/numpy/core/numeric.py", line 531, in asarray

    return array(a, dtype, copy=False, order=order)

ValueError: could not convert string to float: 'rec_id'


と表示されました。 'rec_id'には16.157895 の値が入っていて、配列全体をstring から float にキャストするにはどうしたら良いのでしょうか?どう書けば良いのでしょうか?

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

0

/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/skimage/filter/init.py:6: skimage_deprecation: The skimage.filter module has been renamed to skimage.filters.  This placeholder module will be removed in v0.13.
warn(skimage_deprecation('The skimage.filter module has been renamed '

Tracebackに書かれているのは、「'skimage.filter'というモジュールは、'skimage.filters'に改名されています」という注意です。

だから、

from skimage.filter import rank


from skimage.filters import rank


に変更すれば良いのではないでしょうか?

v0.10からv0.11に変わる際に改名されたようです(以下の記事の3.3.2.1. データ型の章の注意書き)
3.3. Scikit-image: 画像処理

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2017/05/30 19:55

    ありがとうございます。
    Traceback (most recent call last):
    File "test1.py", line 68, in <module>
    plt.plot(spec_avg,'go')
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/pyplot.py", line 3317, in plot
    ret = ax.plot(*args, **kwargs)
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/__init__.py", line 1898, in inner
    return func(ax, *args, **kwargs)
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_axes.py", line 1407, in plot
    self.add_line(line)
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 1793, in add_line
    self._update_line_limits(line)
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/axes/_base.py", line 1815, in _update_line_limits
    path = line.get_path()
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/lines.py", line 989, in get_path
    self.recache()
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/matplotlib/lines.py", line 676, in recache
    x = np.asarray(xconv, np.float_)
    File "/Users/XXX/anaconda/envs/py36/lib/python3.6/site-packages/numpy/core/numeric.py", line 531, in asarray
    return array(a, dtype, copy=False, order=order)
    ValueError: could not convert string to float: 'rec_id'

    キャンセル

  • 2017/05/30 19:56

    直したのですが、まだエラーが出ます。どういう所が悪いのでしょうか?

    キャンセル

関連した質問

  • 解決済

    ImportErrorが解消できない件

    以下に記すエラーの解消方法が分からないのでアドバイスを頂きたいです。 pythonのバージョンに合ったnumpyをインストールしていない時に出るエラーだと思います。 pipでmat

  • 解決済

    クラスタ毎の色変更ができません

    前提・実現したいこと クラスタリングの勉強をしています. scikit-learnでクラスタリングしようと思っています. 下記の2つの記事を参考にさせていただいています. こちらの

  • 解決済

    matplotlib contourマップの値の制限とanimation

    import numpy as np import matplotlib.pyplot as plt E=np.zeros((10,10)) for i in range(1,1

  • 解決済

    Python matplotlib 図の保存について

    本来、matplotlibで図を保存する場合は以下のようになるのですが、 以下のように保存することは可能でしょうか? (グラフの部分だけ) また、matplotlibで

  • 解決済

    python:jupyter notebookにてCSVファイルを結合してグラフ描画について

    目的 python jupyternotebookにて、読み込んだ複数のCSVファイルを1つのグラフにまとめて描画したいです。 問題点 下記のプログラムで出力するとグラフの値の

  • 解決済

    MatplotlibのFuncAnimationが動きません。

    かれこれ1日を潰してしまいました。 次のようなコードがあるのですが、動作しません。 indexは時間。列は2列、ともに数値が入っています。 列には全てデータを埋めてあり、空欄はあり

  • 解決済

    各凡例ラベルを1つのみ表示させたい

     前提・実現したいこと 各motion3個の線を表示させつつ(計10個の線)、凡例ラベルの同名で表示されているものを1つにまとめたい  発生している問題・エラーメッセージ こち

  • 解決済

    matplotlibで凡例を一つにまとめたい

     前提・実現したいこと Python初心者です. あるデータからグラフを描画しています. 6つのグラフの凡例を一つにまとめたいのですが,どのようにすればよいのでしょうか. 以下のエ

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

  • Python 3.x

    6974questions

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

  • NumPy

    483questions

    NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。