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

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

新規登録して質問してみよう
ただいま回答率
85.49%
NumPy

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

Python 3.x

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

Q&A

解決済

1回答

258閲覧

[リスト]ー[リストの平均値]の求め方

okahijiki

総合スコア404

NumPy

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

Python 3.x

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

1グッド

1クリップ

投稿2021/05/06 04:12

[リスト]ー[リストの平均値]を、じぶんなりに求めてみました。
もっとシンプルな書き方がありましたら、どうぞ、ご教示くださいませ。

python

1a=[85,73,52,88,98,81,92,87,96,88] 2 3#aの平均値 => 84 4avg=sum(a)/len(a) 5 6#aと、aの平均値のindexの数をそろえる 7b=[avg]*len(a) 8 9#リストを多次元配列に変換する 10import numpy as np 11c=np.array(a) 12d=np.array(b) 13 14print(c-d) 15#[ 1 -11 -32 4 14 -3 8 3 12 4]
ikapy👍を押しています

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

シンプルの基準によりますが、内包表記を使えば以下です。

python

1>>> a = [85,73,52,88,98,81,92,87,96,88] 2>>> avg = sum(a)/len(a) 3>>> dif = [x - avg for x in a] 4>>> print(dif) 5[1.0, -11.0, -32.0, 4.0, 14.0, -3.0, 8.0, 3.0, 12.0, 4.0]

pandasを使うと以下です。

python

1>>> a = [85,73,52,88,98,81,92,87,96,88] 2>>> 3>>> import pandas as pd 4>>> 5>>> df = pd.DataFrame([a]).T 6>>> dif = df - df.mean()[0] 7>>> print(dif) 8 0 90 1.0 101 -11.0 112 -32.0 123 4.0 134 14.0 145 -3.0 156 8.0 167 3.0 178 12.0 189 4.0

投稿2021/05/06 04:36

編集2021/05/06 04:45
ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okahijiki

2021/05/06 05:12

1)aーavg(リスト型ー数値型)が不可のため、avgもリスト型にし、 2)さらに、リスト型どうしの引き算も不可なため、ndarrayにして求めるという、 2ステップの書き方をしていました。 内包表記なら1ステップでできますし、 pandasを使った書き方なら、DataFrameにて、aと、a-平均値を一覧するのに役立ちそうです。 ご回答、ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問