原文


プレゼンテーション

回答

プレゼンテーションの提出形式はパワーポイントをご使用ください。
分析に関する部分については、分析手法、分析スクリプト、分析結果、解釈等をパワーポイントへご記載ください。
解析に使用したファイルは不要です。

回答

原則2名です。

(8)医療画像データ処理

回答

dcmに変えたところ、次のcolor変更のコードでエラーが出ます。

error Traceback (most recent call last)
<ipython-input-2-ff80a99aad61> in <cell line: 7>()
5
6 chest01 = cv2.imread(‘./JPCNN005.dcm’)
—-> 7 plt.imshow(cv2.cvtColor(chest01, cv2.COLOR_BGR2RGB))
8 plt.show()

error: OpenCV(4.8.0) /io/opencv/modules/imgproc/src/color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function ‘cvtColor’
このエラーは、OpenCVのcv2.imread関数がDICOMファイルを正しく読み込めなかったことを示しています。cv2.imreadは主に画像ファイル(JPEG、PNGなど)を読み込むための関数であり、DICOMファイルの読み込みには対応していません。

DICOMファイルを読み込むには、前述したようにpydicomライブラリを使用する必要があります。以下のコードは、DICOMファイルを読み込んで表示する方法を示しています:


!pip install pydicom pillow

import pydicom
from PIL import Image
import matplotlib.pyplot as plt

# DICOMファイルを読み込む
dcm = pydicom.dcmread(‘./JPCLN005.dcm’)

# PIL形式のイメージに変換
im = Image.fromarray(dcm.pixel_array)

# イメージを表示
plt.imshow(im, cmap=’gray’)
plt.show()

以上で、お試しください。

(7)Web APIによるデータ処理Ⅱ

回答

このエラーは、requests.get(url).json() の部分で JSON データを解析しようとした際に、期待される値が見つからなかったことを示しています。これは、指定された URL から有効な JSON データが返されなかった可能性があります。これを解決するには、以下のステップを試してみてください。

response = requests.get(url)
print(response.status_code)

ステータスコードが 200 であれば、リクエストは成功しています。
実際に行ってみますと、404が出てきます。

ステータスコード 404 は、指定された URL にリソースが見つからないことを示しています。これは、URL が間違っているか、リクエストされた日付のデータが存在しない可能性があります。

https://www.jma.go.jp/bosai/amedas/data/point/74447/20230406_00.json

に注目しますと、これは2023年4月6日のデータの取得になっていますが、アメダス・データはすでに提供されていないということになります。

そこで、
20230406を本日20240215にしてみてください。
現在の日付に変更すれば、グラフが描けるはずです。

(5)ネットニュースのヘッドライン・画像スクレイピング

回答

jupyter notebookで画像取得できますが、ご指摘のプログラムを確認させてください。
具体的な演習番号、課題番号をお知らせください。プログラムのコピーでも構いません。

回答

Google Colab上で犬の画像を100枚集めて表示することができます。ただし注意点として、img.show() はColab環境ではうまく動作しないことがあるため、代わりに display() 関数を使用することをお勧めします。
演習7
!pip install icrawler
from icrawler.builtin import BingImageCrawler
crawler = BingImageCrawler(storage={“root_dir”: “dog_images”})
crawler.crawl(keyword=”dog”, max_num=100)
from PIL import Image
from IPython.display import display
import os
# ダウンロードした画像を表示する
for filename in os.listdir(“dog_images”):
img_path = os.path.join(“dog_images”, filename)
img = Image.open(img_path)
display(img)
演習8
BeautifulSoupを使ってGoogle画像検索から犬の画像をスクレイピングし、100枚集めて表示するプログラムは、現時点で、Googleの規約やポリシーに違反する可能性があります。Googleは自動化されたスクレイピングを禁止しており、これに違反するとアクセスがブロックされることがあります。
代わりに、公式のAPIやライブラリを使用して画像を取得することをお勧めします。例えば、演習7の icrawler ライブラリを使用する方法があります。

(3)政府統計のデータ活用

回答

PythonのPandasライブラリでデータフレームを操作する際、二つの方法はデータの行数を調べるためによく使用されますが、通常は同じ結果を返すはずです。
len(df)はデータフレームの行数のみを返します。
df.shapeはタプルを返し、その第一要素が行数、第二要素が列数です。
理論上は、両者は同じ行数を返すべきであり、違いがある場合はデータフレームの状態の違いや、コードの実行タイミングの違いによる可能性が高いです。操作を一つずつ確認し、どの段階で行数に差異が生じるのかをご確認いただけますか?

回答

%matplotlib inlineは、Jupyter NotebookやJupyter LabなどのIPython環境でMatplotlibを使用する際に、図やグラフをノートブック内に直接表示させるためのマジックコマンドです。!pip install japanize-matplotlibでjapanize-matplotlibをインストールした後、import matplotlib.pyplot as pltを行っても、このマジックコマンドがなければ、作成したグラフや図は自動的にノートブック内に表示されません。

回答

エラーの原因として考えられるのは、指定している列名がDataFrameに存在しないか、あるいは列名の指定方法に誤りがある可能性があります。また、列名に使用されている文字が全角か半角か、特殊文字が含まれているかどうかも影響する可能性があります。対処方法です。
(1) まず、DataFrame df の列名を確認して、指定しようとしている列が正確に存在するかを確認してください。これは print(df.columns) を実行することで行えます。
(2) 列名が正しく存在することを確認したら、指定する列名が完全に一致するようにしてください。全角文字や半角文字、特殊文字(~や?など)が含まれている場合、正確にそれらを指定する必要があります。

回答

ご指摘ありがとうございます。
⑨と⑩の手順はExcelなどで行ってください。ただしオープンデータは日々更新されることが考えられますので、ダウンロードしたファイル名が関連ファイル名と同一になりませんが、問題ありません。
実際にダウンロードされない場合は、関連ファイルのCSVを用いれば、それ以降の演習を行うことができます。

回答

index_col=”全国・都道府県”という引数をpd.read_csv()に指定することで、CSVファイルの中の「全国・都道府県」列がデータフレームのインデックス(行の名前やラベル)として使われるようになります。つまり、この列がデータフレームの行を識別するキーとして機能するのです。

他の列、例えば「表章項目」や「時間軸」などについては、このindex_col引数では何も操作をしていません。これらの列は通常通りデータフレームの中にデータ列として読み込まれます。ただし、これらの列をデータフレームから除外したい場合は、usecols 引数を使用して読み込む列を限定することができます。

つまり、index_col引数は特定の列をデータフレームのインデックスに設定するだけであり、他の列には影響を与えません。他の列の取り扱い(除外するかどうかなど)は別途指定が必要です。

   統計学活用支援サイト

申し込み