【2026年8月最新】NumPyのnp.maxとは?最大値の取得方法をnp.nanmax・np.maximumとの違いも含めて非エンジニアにわかりやすく解説
「今月の売上データで、一番高かった月はいくらだったか」「複数店舗のうち、最高売上を記録した店舗はどこか」——このような「最大値を知りたい」というシンプルな要望は、経営の現場で日常的に発生します。
AIエージェントやデータ分析ツールにこの手の集計を依頼すると、裏側ではPythonという言語のNumPyというライブラリに含まれるnp.maxという機能がよく使われます。仕組み自体は単純ですが、「データが欠けている(欠損している)場合にどう動くか」で結果が大きく変わるという、実務上とても重要な注意点があります。
この記事では、np.maxが何をしているのか、似た名前を持つnp.nanmax・np.maximumとの違いを、非エンジニアの経営者・管理職の方でも理解できる言葉で解説します。後半では、弊社(株式会社GENAI)がAIエージェント「Claude Code」を使って、売上データ分析をどのように運用しているかも紹介します。
この記事を最後まで読むと、次の6つが明確になります。
np.maxが「何を」「どう」計算しているかの基本イメージnp.maximumを使った2つのデータの要素ごとの比較01 WHY IT MATTERS 経営者・管理職が「最大値の取得」でつまずく理由 シンプルな計算のはずが、データの欠けで結果が変わる
「最大値を出す」というのは、ExcelでいえばMAX関数を使うのと同じ、非常にシンプルな集計作業です。ところが、社内の売上データや広告データをAIやプログラムで分析してもらうと、次のような疑問に遭遇することがあります。
こうした疑問の背景には、多くの場合「データの中に欠けている部分(欠損値)がどう扱われているか」という、集計方法の設定の違いが関係しています。
経営判断の材料として使う数字が、実は欠損データの扱い方によって変わってしまう——これは些細な技術的な話に見えて、意思決定の正確性そのものに関わる問題です。「一番良かった月」を正しく特定できなければ、成功パターンの分析や来期の計画にも影響が及びます。
売上・広告効果・在庫といった意思決定に直結する数値の集計については、「欠損データがどう扱われているか」を分析担当者やAIに一度確認しておく価値があります。特に複数のシステムからデータを集約している場合、欠損は珍しくありません。
1-1. 「データが欠けている」のは決して珍しいことではない
売上システムの入力漏れ、センサーの計測エラー、アンケートの未回答——実務のデータには、大なり小なり「欠けている部分」が存在するのが普通です。この欠けている部分を専門的には欠損値と呼び、集計時にどう扱うかで結果が変わってきます。
次章から、この欠損値の扱いを含めて、最大値を求める仕組みを具体的に見ていきます。
02 THE BASICS np.maxとは何か——NumPyで配列の最大値を求める関数 Pythonのデータ分析で標準的に使われるライブラリの機能
np.maxは、NumPyというPythonのライブラリに含まれる機能(関数)で、配列(複数の数値をまとめたデータ)の中から、最大の値を取り出すために使われます。
📚 用語解説
NumPy(ナンパイ):Pythonで数値計算・データ分析を行う際に、ほぼ標準的に使われるライブラリ(拡張機能)。大量の数値データを高速に処理できる仕組みが備わっており、売上データや広告データの集計・分析でも土台として使われることが多い。
📚 用語解説
ライブラリ:プログラミング言語に「あとから追加できる機能セット」のこと。全ての機能を毎回自分で作る必要がなく、あらかじめ用意された高機能な部品を呼び出して使えるようにする仕組み。NumPyは「数値計算用のライブラリ」の代表例。
最もシンプルな例は次のようになります。
import numpy as np
sales = np.array([120000, 340000, 95000, 410000, 260000])
print(np.max(sales)) # 410000
この例では、5日分の売上データの中から、最も高い金額である410000が取り出されています。np.max()という書き方の他に、sales.max()のように配列自体に対して呼び出す書き方もあり、どちらも同じ結果になります。
03 AXIS OPTION 基本的な使い方とaxis(軸)指定 「全体」ではなく「行ごと・列ごと」に最大値を求める
実務のデータは、単純な1列のリストではなく、「店舗×月」「商品×週」のような表形式(行と列を持つデータ)であることがほとんどです。np.maxでは、axisという引数を指定することで、「全体の最大値」ではなく「行ごと・列ごとの最大値」を求めることができます。
📚 用語解説
axis(軸):表形式のデータにおいて、「行方向」と「列方向」のどちらを基準に計算するかを指定するための引数。axis=0は列ごと(縦方向)、axis=1は行ごと(横方向)の計算を意味する、NumPyの表データ処理における基本的な考え方。
import numpy as np
# 3店舗 × 4週間の売上データ(行=店舗、列=週)
sales = np.array([
[120000, 340000, 95000, 410000], # 店舗A
[200000, 180000, 260000, 300000], # 店舗B
[90000, 150000, 400000, 220000], # 店舗C
])
print(np.max(sales)) # 全体の最大値: 410000
print(np.max(sales, axis=1)) # 各店舗(行)ごとの最大値: [410000 300000 400000]
print(np.max(sales, axis=0)) # 各週(列)ごとの最大値: [200000 340000 400000 410000]
| 指定方法 | 意味 | 実務での使いどころ |
|---|---|---|
| axisを指定しない | データ全体から1つの最大値 | 「全社で一番良かった日」を知りたいとき |
| axis=1(行ごと) | 各店舗・各商品ごとの最大値 | 「各店舗の最高売上日」を横並びで比較したいとき |
| axis=0(列ごと) | 各週・各月ごとの最大値 | 「各週で最も売れた店舗の金額」を知りたいとき |
axisの数字は最初混乱しやすいポイントですが、「axis=0を指定すると、行の方向が計算でつぶれて列だけが残る」「axis=1を指定すると、列の方向がつぶれて行だけが残る」という覚え方をすると、結果の形をイメージしやすくなります。
04 MISSING VALUES np.nanmaxで「欠損値」が混ざったデータを扱う データに空欄が混ざると、np.maxはうまく機能しないことがある
ここが、この記事で最も重要なポイントです。売上データの一部が未入力(欠損)だった場合、np.maxは正しい最大値を返せなくなるケースがあります。
📚 用語解説
NaN(ナン):「Not a Number」の略で、NumPyやPythonのデータ分析において「欠損している値(データが存在しない状態)」を表すために使われる特別な値。Excelの空白セルに近い概念だが、集計関数の挙動に明確な影響を与える点で異なる。
import numpy as np
sales = np.array([120000, 340000, np.nan, 410000, 260000])
print(np.max(sales)) # nan ← 最大値が求まらない!
np.maxは、配列の中に欠損値(NaN)が1つでも含まれていると、正しい数値を比較できなくなり、結果自体が「NaN(計算不能)」になってしまいます。5件中4件が正常な数値であっても、1件の欠損のせいで集計全体が失敗する、という直感に反する挙動です。
この問題を回避するのがnp.nanmaxです。欠損値を無視して、残りの正常な値の中から最大値を求めてくれます。
import numpy as np
sales = np.array([120000, 340000, np.nan, 410000, 260000])
print(np.nanmax(sales)) # 410000.0 ← NaNを無視して正しく計算(NaNを含む配列はfloat型になる)
| 関数 | 欠損値(NaN)がある場合の挙動 |
|---|---|
np.max | 結果全体がNaN(計算不能)になる |
np.nanmax | 欠損値を無視して、残りのデータから最大値を計算する |
4-1. 「無視すればいい」と単純に考えるのは危険
np.nanmaxを使えば表面的には「エラーが出ずに数字が返ってくる」ようになりますが、これは「欠損データを無視して計算した結果」であることを常に意識する必要があるという点に注意が必要です。
例えば、ある店舗のデータの大部分が欠損していて、たまたま1件だけ正常な値が残っていた場合、np.nanmaxはその1件をそのまま「最大値」として返します。「データが十分にある上での最大値」なのか、「たまたま残った1件だけの値」なのかは、集計結果の数字だけからは区別できません。
05 ELEMENT-WISE MAX np.maximumで2つのデータを要素ごとに比較する 「1つの配列の中の最大値」ではなく「2つの配列を比べた大きい方」
np.max・np.nanmaxとよく似た名前を持つnp.maximumは、実は全く異なる目的で使われる関数です。1つの配列の中から最大値を1つ求めるのではなく、2つの配列を同じ位置同士で比較し、それぞれ大きい方を採用した新しい配列を作るために使われます。
📚 用語解説
要素ごとの比較(element-wise):2つの配列の「同じ位置にある値同士」を1つずつ比較していく計算方法。np.maximumは、2つの配列の対応する位置の値を比べて、大きい方を採用した新しい配列を作る、要素ごとの比較の代表例。
import numpy as np
plan_a = np.array([100000, 200000, 150000]) # 施策Aの日別売上
plan_b = np.array([120000, 180000, 200000]) # 施策Bの日別売上
# 各日ごとに、A・Bのうち高い方の売上を採用
best_each_day = np.maximum(plan_a, plan_b)
print(best_each_day) # [120000 200000 200000]
この例では、施策Aと施策Bの日別売上を比較し、各日ごとに良かった方の数字だけを抜き出した「理想の組み合わせ」を作っています。「AとBのどちらが優れているか」を全体でまとめて判定するのではなく、タイミングごとに最良の選択をシミュレーションしたい場合に有効な使い方です。
| 関数 | 何を求めるか |
|---|---|
np.max | 1つの配列(またはその一部)の中の、最大値1つ |
np.nanmax | 欠損値を無視した上での、最大値1つ |
np.maximum | 2つの配列を要素ごとに比較した、大きい方の値からなる新しい配列 |
np.max・np.nanmax・np.maximumは、名前が非常に似ているため、AIに分析を依頼する際も「最大値を1つ知りたいのか」「2つのデータを比較した組み合わせを知りたいのか」を、依頼の言葉で明確に区別することをおすすめします。
06 COMMON PITFALLS 業務データ分析でよくある落とし穴 早見表 専門知識がなくても確認できる観点
非エンジニアの担当者でも、以下の観点でデータ分析結果のセルフチェックが可能です。
| 確認したいこと | 確認方法の例 |
|---|---|
| 最大値の結果が「計算不能」と表示されないか | 結果がNaNやエラーになっていないか、担当者やAIに確認する |
| 集計対象データにどの程度欠損があるか | 「全体の何%が欠損していたか」を必ず併記してもらう |
| 「最大値」が意図した単位(全体/行ごと/列ごと)になっているか | axisの指定(全体・店舗ごと・月ごと等)を明確に伝える |
| 2つの施策・期間を比較する分析で、意図が正しく伝わっているか | 「1つの最大値」か「組み合わせた配列」か、欲しい結果の形を具体的に伝える |
np.nanmaxのように欠損値をうまく回避できる関数を使うと、エラーなく数字が出力されるため、つい「正しく計算できた」と思いがちです。しかし、欠損の多いデータから出た数字は、そもそも参考にする価値が低い場合があります。数字が出ることと、その数字が信頼できることは別の話です。
6-1. 「担当者ごとに集計方法が違う」問題も見逃せない
複数の担当者が別々にExcelやスプレッドシートで集計している組織では、「欠損セルを0として計算する人」と「欠損セルを除外して計算する人」が混在するという問題がよく起こります。同じ元データを見ているはずなのに、担当者によって報告される「最大値」や「平均値」が微妙に異なるという事態は、この集計ルールの不統一が原因であることが少なくありません。
AIエージェントに分析を一元化して任せることの隠れた利点は、こうした「人によって集計ルールがバラつく」問題そのものを構造的に防げることです。一度ルールを指示しておけば、以降は誰が依頼しても同じ前提で計算されるようになります。
07 GENAI CASE STUDY 【独自データ】GENAI社内、データ分析業務をClaude Codeにどこまで任せているか 欠損値の扱いまで含めた分析スクリプトを、AIエージェントに依頼する運用
ここからは、弊社(株式会社GENAI)の実運用データを紹介します。弊社ではClaude Max 20xプラン(月額$200・約30,000円)を契約し、経営・営業・広告・開発・経理・秘書業務まで全社的にAIエージェント「Claude Code」を活用しています。
| 項目 | 内容 |
|---|---|
| 契約プラン | Claude Max 20x(月$200 / 約30,000円) |
| 利用開始 | 2025年後半〜 |
| データ分析関連の用途 | 広告レポートの集計、売上データの最大値・平均値分析、欠損データの検出 |
| 担当体制 | 専任のデータアナリストを新規に雇わず、既存メンバー+Claude Codeで対応 |
弊社では、広告運用のレポート作成や売上分析の際、Claude Codeに「このデータの中で最も成果が良かった日・施策を教えて」といった日本語での依頼をするだけで、内部的にnp.maxやnp.nanmaxを含む分析スクリプトを組み立ててもらっています。「このデータに欠損がないか」まで含めて自動的にチェックしてもらうのが、弊社の標準的な運用です。
「最も成果が
良かった日を
教えて」と依頼
Claude Codeが
欠損値の有無を
先に確認
欠損率を明記した
上で最大値を
計算
人間が
数字の
信頼度を確認
この運用の利点は、「欠損値があるとnp.maxが正しく機能しない」という、経験のあるデータ分析担当者でも意識しないと見落とす落とし穴を、AIが標準的な対策(nanmax系関数の使用・欠損率の明示)を踏まえた上で回避してくれる点にあります。人間が集計の目的を明確に伝えるだけで、実装の細部と品質管理はAIに任せられます。
7-1. 「集計の意図を言語化する」だけで済む依頼の仕方
弊社の実務では、分析に関する依頼のほとんどが「何を、どの単位で比較したいか」を一言で伝えるだけで完結しています。「店舗ごとの最高売上日」「欠損を除いた上での平均」といった、非エンジニアでも自然に使える言葉で十分にAIへ意図が伝わります。
📚 用語解説
集計の意図の言語化:「店舗ごとに」「欠損を除いて」といった、分析の前提条件を明確な言葉で表現すること。技術的な関数の名前や引数を知らなくても、この前提を正確に伝えられれば、AIエージェントが適切な処理を組み立ててくれる。
08 FOR NON-ENGINEERS 【独自】非エンジニアでも分析結果の異常値をAIで見つける3ステップ コードが読めなくても、違和感から改善につなげる方法
「np.maxや欠損値の仕組みは分かったけれど、実際に自社データの分析結果が正しいか確認するのは無理そう」と感じるかもしれません。しかし、AIエージェントを間に挟むことで、非エンジニアでも改善のきっかけを作れるようになります。
8-1. ステップ1:「想定していた数字」と「出てきた数字」の違いを書き出す
「先月の最高売上日は、感覚的にはあの日だったはずなのに、分析結果ではそうなっていない」のように、自分が想定していた結果と、実際に出力された結果を具体的に書き出します。専門用語を使う必要はありません。
8-2. ステップ2:Claude Codeに「この集計に欠損データの影響がないか確認して」と依頼する
Claude Codeのデスクトップ版を使えば、ターミナル(黒い画面)を開かずに、チャット形式で「このデータの最大値の計算に、欠損値の影響がないか確認して」と依頼できます。AIがnp.maxやnp.nanmaxの使われ方を解析し、欠損の状況と影響を日本語で報告してくれます。
8-3. ステップ3:欠損の状況を踏まえて、数字の使い方を判断する
AIが報告した欠損率や計算方法を踏まえて、「この数字をそのまま経営判断に使ってよいか、それとも参考値程度に留めるべきか」を人間が判断するのが、非エンジニアの担当者にとって最も価値のある関わり方です。
ズレを
書き出す
専門知識
不要
欠損の影響を
確認依頼
欠損率と影響を
日本語で報告
人間が
判断
経営判断への
反映度を決める
分析結果を受け取る際、最大値・平均値といった数字だけでなく「その計算に使われたデータのうち、何%が欠損していたか」を必ず併記してもらう習慣をつけると、数字への過信を防げます。
09 CONCLUSION まとめ ── 「最大値1つ」の裏に、データ品質の問題が隠れている 技術の詳細を知らなくても、リスクは管理できる
この記事では、NumPyのnp.maxが何をしているのか、axisによる行・列ごとの計算、欠損値(NaN)を扱うnp.nanmax、要素ごとの比較を行うnp.maximum、そして弊社GENAIがAIエージェント「Claude Code」を使ってデータ分析業務をどう運用しているかを紹介しました。最後にポイントを振り返ります。
「最大値を1つ求める」という作業は一見単純ですが、その裏側には欠損値の扱い・集計の単位(axis)という、経験のあるデータ分析担当者でも意識しないと見落とす落とし穴が潜んでいます。技術の詳細を全て理解する必要はありませんが、「集計結果には欠損の影響があるかもしれない」と知っているだけで、数字を受け取る際の感度が上がります。
小さな数字の違和感を放置せず、欠損の有無まで含めて早めに確認する習慣を持つことが、経営判断の正確性を守る確実な一歩です。
社内データの「欠損」まで見える分析体制、AIで作りませんか?
最大値・平均値の集計から、欠損データの検出・業務プロセス全体の自動化まで。
Claude Codeを使った「自社で信頼できるデータ分析ができる体制」の作り方を、実例ベースでご提案します。
NEXT STEP
この記事の内容を、あなたのビジネスで
実践してみませんか?
よくある質問
Q. np.maxを実行すると「nan」という結果が返ってくるのはなぜですか?
A. 対象の配列の中に欠損値(NaN)が1つでも含まれていると、np.maxは正しい数値を比較できず、結果全体がNaN(計算不能)になります。欠損値を無視して計算したい場合は、np.nanmaxを使ってください。
Q. np.nanmaxを使えば、欠損データの問題は完全に解決しますか?
A. 計算がエラーにならずに済む点では解決しますが、「欠損の多いデータから出た最大値をどこまで信頼するか」という判断は別途必要です。欠損率が高い場合は、参考値として慎重に扱うことをおすすめします。
Q. axisの数字(0か1か)がどちらを指すのか、いつも混乱してしまいます
A. 「axis=0を指定すると行方向がつぶれて列ごとの結果になる」「axis=1を指定すると列方向がつぶれて行ごとの結果になる」という覚え方がおすすめです。実際に小さなサンプルデータで試して結果の形を確認するのも有効です。
Q. np.maximumとnp.maxの違いが分かりにくいです。もう少し具体的に教えてください。
A. np.maxは1つの配列から最大値を1つ求める関数です。一方np.maximumは、2つの配列を同じ位置同士で比較し、それぞれ大きい方を採用した「新しい配列」を作る関数で、目的が全く異なります。
Q. 自社の分析結果に欠損データの影響があるかどうか、非エンジニアでも確認できますか?
A. コードを直接読んで判断するのは難易度が高い作業ですが、「結果に想定外の値がないか」という違和感には気づけます。原因の特定(欠損の有無等)はClaude CodeのようなAIエージェントに調査を依頼するのが現実的です。
Q. Claude Codeにデータ分析の欠損チェックを依頼する場合、専門知識は必要ですか?
A. 不要です。「このデータの計算に、欠損値の影響がないか確認して」といった感覚的な言葉で伝えるだけで、Claude Codeがnp.maxやnp.nanmaxの使われ方を解析し、欠損の状況と影響を日本語で報告します。最終確認・承認だけ人間が行う運用で十分に回せます。
Claude Codeで業務自動化を90日で叩き込む
経営者向けの伴走型パーソナルトレーニング
AI鬼管理/AIBPO by AI鬼管理へのお問い合わせ
この記事を読んで気になった方へ。
専門スタッフが、御社に最適な
業務自動化・業務代行プランを無料でご提案します。




