NumPy は Python で最も人気のあるライブラリの 1 つです。データサイエンス、機械学習、数値解析を支えています。多くの開発者が NumPy 配列 (ndarray) を使用して、大規模データセットを迅速に処理します。

私たちの previous blog post では、ExcelファイルをNumPy配列に変換する方法を説明しました。このワークフローは、分析のために外部データをPythonに取り込む必要がある場合に便利です。しかし、逆のことを望んでいる場合はどうでしょうか?多くの場合、報告や共有のためにNumPyからExcelにPythonの結果をエクスポートする必要があります。Excelはビジネス、学校、組織で広く使用されており、コラボレーションには理想的なフォーマットです。

このガイドでは、PythonとAspose.Cells for Python via .NETを使用してNumPyをExcelに変換する方法をステップバイステップで説明します。

なぜNumPyをExcelに変換するのですか?

NumPy は、Python内での計算と分析に最適です。しかし、私たちはしばしば結果を他の人と共有する必要があります。ほとんどのビジネスユーザーは、使い慣れていて簡単に使用できるため、Excelを好みます。

以下は、NumPyをExcelにエクスポートする必要がある一般的な理由です:

  • データ報告:処理されたデータをマネージャーやクライアントのためにExcelファイルに変換します。
  • コラボレーション: Pythonを使用しないチームメイトと結果を共有します。
  • ビジネス分析: NumPy の結果を既存の Excel レポートやダッシュボードと組み合わせる。
  • 可視化: Excel のチャートとピボットテーブルを使用してデータをより意義のあるものにします。

Excelは普遍的なフォーマットです。Python開発者と非技術的ユーザーとのギャップを埋めます。NumPy配列をExcelにエクスポートすることで、データをアクセス可能で、使いやすく、理解しやすくします。

Python NumPy Excel ライブラリ

Aspose.Cells for Python は強力なスプレッドシートライブラリです。これを使用すると、Microsoft Excelをインストールすることなく、Excelファイルを作成、編集、処理できます。これは、Excelドキュメントを完全に制御する必要がある開発者向けに設計されたもので、Python用の最高のExcelライブラリです。あなたは次のことができます:

  • Excelファイルを異なる形式で読み込みおよび保存します。
  • ワークシート、テーブル、範囲、およびチャートで作業します。
  • Python オブジェクトからデータをインポートおよびエクスポートし、NumPy 配列を含みます。
  • 大規模なデータセットを高速かつ正確に処理します。

Aspose.Cellsの一番の良いところは、独立して動作することです。Excelやその他の外部ソフトウェアは必要ありません。Pythonアプリケーションでスムーズに実行され、科学的なワークフローともうまく統合されます。これにより、NumPyデータをExcelファイルに変換するための信頼性の高いソリューションとなります。

NumPyをPythonでExcelに変換する

NumPy 配列を Aspose.Cells を使用して Excel に変換するのは簡単です。次の簡単な手順に従ってください:

ステップ 1: .NET経由でPython用Aspose.Cellsをインストールします。

パッケージを pip を使ってインストールしてください:

pip install aspose-cells-python

ステップ 2: 必要なライブラリをインポートする

あなたのPythonスクリプトでは、NumPyとAspose.Cellsをインポートします:

import numpy as np
import aspose.cells as cells

ステップ 3: サンプル NumPy 配列を作成する

テストのために、シンプルな2D配列を作成します:

data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

ステップ 4: カスタム関数を定義する – insertnumpyarray

NumPyの値は、しばしばnumpy.int64numpy.float32、またはnumpy.boolのようなタイプとして提供されます。これらはExcelセルに書き込む前に、ネイティブPythonタイプに変換する必要があります。

以下のヘルパー関数はこの変換を行い、指定された行と列から直接ワークシートに配列を挿入します:

# ワークシートにNumPy配列を挿入するカスタム関数
def insert_numpy_array(sheet, ndarray, start_row=0, start_col=0):
    rows, cols = ndarray.shape
   for r in range(rows):
       for c in range(cols):
            value = ndarray[r, c]
            # NumPy タイプをネイティブ Python タイプに変換する
            if isinstance(value, (np.integer,)):
                value = int(value)
            elif isinstance(value, (np.floating,)):
                value = float(value)
            elif isinstance(value, (np.bool_,)):
                value = bool(value)
            elif isinstance(value, (np.str_, np.str_)):
                value = str(value)
            sheet.cells.get(start_row + r, start_col + c).put_value(value)
            

次のセクションでは、NumPyデータをWorkbook、Worksheet、ListObject、Range、およびNamed Rangeに挿入する方法を示します。今後のセクションのコード例では、ステップ4: カスタム関数のセクションで定義されたヘルパー関数を使用しています。

NumPy ndarrayをExcelワークブックに変換する方法

NumPy 配列から完全な Excel ワークブックを数行で作成できます。この方法は、データ分析結果、機械学習出力、または表形式データセットを専門的な Excel ファイルにエクスポートしたい場合に最適であり、共有またはさらに処理が可能です。

以下の手順に従って、NumPy ndarray を Excel ワークブックに変換します:

  1. あなたのデータでNumPy 2D配列を作成してください。
  2. Workbook クラスを使用して、新しい空のワークブックを初期化します。
  3. ワークブックに新しいワークシートを追加するには、 worksheets.add() メソッドを使用します。
  4. 新しいワークシートにインデックスでアクセスします。
  5. NumPy 配列をループして、値をワークシートのセルに挿入します。
  6. ワークブックをExcelファイルとして保存します。

次のコード例は、NumPy ndarrayをExcelワークブックに変換する方法を示しています。

# NumPy 配列を作成する
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# NumPy 配列を Excel ワークブックに変換する
workbook = cells.Workbook()

# 新しいワークシートを追加します。
new_sheet_index = workbook.worksheets.add()
worksheet = workbook.worksheets.get(new_sheet_index)

# 新しいワークシートのセル A1 から配列を挿入します。
insert_numpy_array(worksheet, data)

# ワークブックをExcelファイルとして保存します。
workbook.save("numpy_to_workbook.xlsx")
NumPyをExcelワークブックに変換する方法

NumPyをExcelワークブックに変換する方法

ワークシートにNumPy ndarrayを挿入する

場合によっては、既にワークブックがあり、NumPy データを 1 つのワークシートに挿入したいだけの場合があります。

以下の手順に従って、NumPy ndarrayをワークシートに変換します:

  1. あなたのデータでNumPy 2D配列を作成してください。
  2. 既存のExcelファイルをWorkbookクラスを使用してロードします。
  3. データを配置したいワークシートを選択してください。
  4. NumPy 配列をループして、値をワークシートのセルに挿入します。
  5. ワークブックをExcelファイルとして保存します。

以下のコード例は、NumPy ndarrayをExcelワークブックの特定のワークシートに挿入する方法を示しています。

# NumPy 配列を作成する
data = np.array([['City', 'Region', 'Store'], ['Chicago', 'Central', 3055], ['New York', 'East', 3036],
                 ['Detroit', 'Central', 3074]])

# NumPy配列をExcelワークブックに変換する
workbook = cells.Workbook("numpy_to_workbook.xlsx")

# 最初のワークシートにアクセスしてください。
sheet = workbook.worksheets.get(0)

# ワークシートにNumPy配列をA1から挿入します。
insert_numpy_array(sheet, data, 0, 0)

# Excelファイルとしてワークブックを保存します。
workbook.save("numpy_to_worksheet.xlsx")
NumPy ndarrayをワークシートに変換する方法

NumPy ndarrayをワークシートに変換する方法

NumPy ndarrayをListObject(Excelテーブル)に変換する方法

Excel のテーブル(ListObjects とも呼ばれる)は、データを整理し分析するための強力な方法です。Aspose.Cells を使用すると、NumPy 配列を ListObject に直接インポートできます。

以下の手順に従って、NumPy ndarrayをListObject(Excelテーブル)に変換してください。

  1. NumPy 2D 配列をサンプルデータで作成します。
  2. 新しいワークブックを初期化し、最初のワークシートにアクセスします。
  3. ワークシートのセルにNumPyデータを挿入するためにヘルパー関数を使用します。
  4. 配列の次元に基づいて、開始行および終了行、開始列および終了列を定義します。
  5. ワークシートに ListObject を追加するには、 worksheet.listobjects.add() を使用します。
  6. ListObjectに表示名を割り当てます。
  7. Excelファイルとしてワークブックを保存します。

次のコード例は、NumPy ndarrayをExcelテーブルに変換する方法を示しています:

# NumPy 配列を作成します
data = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

# 新しいExcelワークブックを作成します。
workbook = cells.Workbook()
worksheet = workbook.worksheets.get(0)

# ワークシートに NumPy 配列をセル A1 から挿入します。
insert_numpy_array(worksheet, data)

# リストオブジェクトの範囲を定義します
start_row, start_col = 0, 0
end_row, end_col = data.shape[0] - 1, data.shape[1] - 1

# NumPyデータからListObject (Excelテーブル) を追加する
index = worksheet.list_objects.add(start_row, start_col, end_row, end_col, True)
list_object = worksheet.list_objects[index]

# テーブルの表示名を設定してください。
list_object.display_name = "NumPyTable"

# ワークブックを保存します
workbook.save("numpy_to_listobject.xlsx")
NumPy ndarrayをListObject(Excelテーブル)に変換する方法

NumPy ndarrayをListObject(Excelテーブル)に変換する方法

NumPy ndarrayを範囲に変換する

時々、NumPy 配列を特定のセル範囲に配置したい場合があります。この方法は、ワークシート内にデータを正確に配置する必要があるとき、たとえば、事前定義されたテーブル領域を埋めたり、分析結果を選択したセルブロックにエクスポートしたりする際に理想的です。

以下の手順に従って、NumPy ndarrayをRangeに変換します:

  1. 2DのNumPy ndarrayを作成します。
  2. 新しいワークブックを作成するか、既存のワークブックを開きます。
  3. ターゲットワークシートを選択してください。
  4. ndarray の値をループし、対応する Excel セルに挿入します。
  5. cells.createrange(startcell, endcell)Range オブジェクトを作成します。
  6. ワークシートを埋められた範囲と共にExcelファイルにエクスポートします。

次のコード例は、NumPy ndarray を Excel の範囲に挿入する方法を示しています:

import numpy as np
from datetime import datetime
from aspose.cells import Workbook, CellsHelper

# セルにNumPy値を安全に入れるためのヘルパー
def put_cell_value(cells, raw_value, row, col):
    cell = cells.get(row, col)
    if isinstance(raw_value, (np.bool_,)):
        value = bool(raw_value)
    elif isinstance(raw_value, (np.integer,)):
        value = int(raw_value)
    elif isinstance(raw_value, (np.floating,)):
        value = float(raw_value)
    elif isinstance(raw_value, (np.datetime64,)):
        # numpy datetime64 → Python datetime → Excel 互換文字列
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = raw_value
    cell.put_value(value)

# NumPy 配列をセルに挿入して範囲を返す関数
def numpy_to_range(cells, data, start_row=0, start_col=0):
    rows, cols = data.shape
   for i in range(rows):
       for j in range(cols):
            put_cell_value(cells, data[i, j], start_row + i, start_col + j)

    # 開始/終了セルに基づいて範囲を定義します。
    start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
    end_cell = CellsHelper.cell_index_to_name(start_row + rows - 1, start_col + cols - 1)
    return cells.create_range(start_cell, end_cell)

# サンプルのNumPy配列を作成します。
data = np.array([
    ['City', 'Region', 'Store', 'Date'],
    ['Chicago', 'Central', 3055, np.datetime64('2025-01-15')],
    ['New York', 'East', 3036, np.datetime64('2025-02-10')],
    ['Detroit', 'Central', 3074, np.datetime64('2025-03-05')]
])

# 新しいワークブックを作成し、最初のワークシートを取得します。
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# ワークシートに ndarray を Range として挿入する
range_obj = numpy_to_range(cells, data, 0, 0)

print("Row count:", range_obj.row_count)
print("Column count:", range_obj.column_count)

# ワークブックを保存してください。
workbook.save("numpy_to_range.xlsx")
NumPy ndarrayをRangeに変換する方法

NumPy ndarrayをRangeに変換する方法

NumPy ndarrayを名前(名前付き範囲)に変換する方法

時々、Excelの特定のデータ範囲に意味のある名前を付けたくなることがあります。これにより、数式、グラフ、または他のワークシートでデータを参照するのが容易になります。このセクションでは、PythonとAspose.Cellsを使用してNumPyをExcelの名前付き範囲に変換する方法を示します。名前付き範囲を作成することで、Excel内でNumPyデータをより効率的に扱うことができます。

次の手順に従って、Aspose.Cellsを使用してNumPy ndarrayをExcelの名前付き範囲に変換します。

  1. PythonでNumPy配列を作成します。
  2. 新しいワークブックを作成し、ターゲットワークシートにアクセスします。
  3. 配列をループして、各値をワークシートに挿入します。
  4. インポートされたデータをカバーする範囲を定義します。
  5. その範囲に名前を付けてください。
  6. ワークブックをExcelファイルとして保存します。

次のコード例は、NumPy ndarray を Excel の名前付き範囲に挿入する方法を示しています:

import numpy as np
import aspose.cells
from aspose.cells import Workbook, CellsHelper

# ワークシートのセルにNumPyデータを挿入するためのヘルパー関数
def put_cell_value(cells, raw_value, row, column):
    if isinstance(raw_value, (np.bool_)):
        value = bool(raw_value)
    elif isinstance(raw_value, (np.integer)):
        value = int(raw_value)
    elif isinstance(raw_value, (np.floating)):
        value = float(raw_value)
    elif isinstance(raw_value, (np.datetime64)):
        value = str(np.datetime_as_string(raw_value, unit='D'))
    else:
        value = str(raw_value)
    cells.get(row, column).put_value(value)

def insert_ndarray_into_cells(cells, data, start_row, start_col):
    row_count = data.shape[0]
    col_count = data.shape[1]

   for r in range(row_count):
       for c in range(col_count):
            put_cell_value(cells, data[r][c], start_row + r, start_col + c)

    # カバーされたセルの面積を返します
    end_row = start_row + row_count - 1
    end_col = start_col + col_count - 1
    return (start_row, start_col, end_row, end_col)

# ---------------------------
# Main Code
# ---------------------------

# サンプルのNumPy配列を作成する
data = np.array([
    ['Product', 'Region', 'Sales'],
    ['Laptop', 'East', 1200],
    ['Phone', 'West', 950],
    ['Tablet', 'North', 740]
])

# 新しいワークブックを作成する
workbook = Workbook()
worksheet = workbook.worksheets.get(0)
cells = worksheet.cells

# セル (0,0) から始まる場所に ndarray を挿入します。
(start_row, start_col, end_row, end_col) = insert_ndarray_into_cells(cells, data, 0, 0)

# Excel のセル参照を取得する
start_cell = CellsHelper.cell_index_to_name(start_row, start_col)
end_cell = CellsHelper.cell_index_to_name(end_row, end_col)

# このndarrayの名前付き範囲を作成します。
idx = workbook.worksheets.names.add("SalesData")  # returns index
named_range = workbook.worksheets.names[idx]  # get the Name object
named_range.refers_to = f"={worksheet.name}!{start_cell}:{end_cell}"

# ワークブックを保存してください
workbook.save("numpy_to_named_range.xlsx")
NumPy ndarrayを名前(名前付き範囲)に変換する方法

NumPy ndarrayを名前(名前付き範囲)に変換する方法

Aspose.Cells for Pythonを始めましょう。

あなたは今、Aspose.Cellsを使用してNumPy配列をExcelに変換することがどれほど簡単であるかを見ました。このライブラリは、ワークブック、ワークシート、テーブル、範囲、および名前付き範囲を完全に制御することを可能にします。

ここにあなたの理解を深めるためのいくつかの便利なリンクがあります:

無料の一時ライセンスを 取得 して、Aspose.Cells を今日から使用し、Python データを Excel ワークフローと完全に互換性を持たせましょう。

NumPy to Excel: FAQs

Q1: Aspose.Cellsを使用するにはMicrosoft Excelをインストールする必要がありますか?

いいえ。Aspose.Cellsは独立して動作します。Excelや他のソフトウェアをインストールする必要はありません。

Q2: Aspose.Cellsは大きなNumPy配列を扱えますか?

はい。ライブラリは大規模データセットの最適化がされており、大きな配列でも良好に動作します。

Q3: サポートされているExcelフォーマットは何ですか?

あなたはNumPyデータをXLSX、XLS、CSV、ODS、そしてその他多くのスプレッドシート形式に保存できます。

Q4: NumPyデータをエクスポートした後にExcelセルをフォーマットできますか?

はい。スタイル、数値形式、数式を適用することができ、チャートやピボットテーブルを作成することすら可能です。

Q5: Aspose.Cellsの無料版はありますか?

はい。無料の 試用版 をダウンロードするか、テスト用の 一時ライセンス をリクエストできます。

結論

NumPyはPythonにおけるデータサイエンスおよび数値分析のためのコアツールですが、実際の報告にはExcelが必要です。Aspose.Cells for Python via .NETを使用することで、NumPyをExcelに変換することがシームレスで柔軟になります。このガイドでは、NumPy配列を完全なワークブックにエクスポートする方法、ワークシートにデータを挿入する方法、ListObject(Excelテーブル)としてフォーマットする方法、配列を範囲にマッピングする方法、名前付き範囲に割り当てる方法など、さまざまな方法を探求しました。各アプローチには独自の目的があります。NumPyの力とAspose.Cellsの柔軟性を組み合わせることで、Pythonベースの分析からプロフェッショナルなExcelレポートに効率よく移行でき、データがアクセス可能でプレゼンテーションに適した状態であることを保証できます。

ご質問がある場合は、私たちの free support forum でお気軽にお問い合わせください。喜んでお手伝いします。

See Also