Movatterモバイル変換


[0]ホーム

URL:


Yukun's Blog

難しいことを簡単に分かりやすく紹介

フォローする

Python: NumPyアレイの添え字操作

Python

Pythonの数値計算モジュールであるNumPyのアレイに対する添え字操作の基本を記載する。

ソースコード

Python3系で記述している。

import numpy as np# 1行21列のアレイをa rangeメソッドで作成arr = np.arange(0,21)print("arr == ", arr)# 添え字による要素へのアクセスprint("arr[10] == ", arr[10])# 0〜10までの要素をもつアレイを出力print("arr[0:11] ==", arr[0:11])# 0〜10迄の要素にスカラー値を代入arr[0:11] = 100print("arr[0:11] = 100\n", arr, "\n")arr = np.arange(0,11)slice_arr = arr[0:5]print("arr == ", arr)print("slice_arr == ", slice_arr)# slice_arrの全要素にスカラー値100を代入slice_arr[:] = 100print("slice_arr == ", slice_arr)# slice_arrはarrの参照の為、参照元まで書き変わっている。print("arr == ", arr, "\n")# アレイデータのコピー(≠参照)arr_cp = arr.copy()arr_cp[:] = 99print("arr_cp == ", arr_cp)# arr_cp側の変更はarr側へは影響ないprint("arr == ", arr, "\n")# 2次元アレイへの添え字アクセスarr_2d = np.array(([1,2,3],[4,5,6],[7,8,9]))print("arr_2d == \n", arr_2d)print("arr_2d[1] == ", arr_2d[1])# 個別の要素へのアクセスは[row][col] or [row,col]の添え字でアクセスprint("arr_2d[0][1] & arr_2d[0,1] == ", arr_2d[0][1], arr_2d[0,1], "\n")# 2次元アレイのスライスprint("arr_2d[:2,1:] == \n", arr_2d[:2,1:])print("arr_2d[:2,:] == \n", arr_2d[:2,:], "\n")# 9x5のアレイを作成arr_2d = np.zeros((9,5))print("arr_2d == \n", arr_2d)# shapeはアレイの長さをタプル(row, col)で返却する。# shape[0]は行数arr_len = arr_2d.shape[0]for i in range(arr_len):  arr_2d[i] = iprint("arr_2d == \n", arr_2d, "\n")# 指定の行だけを取り出すprint("arr_2d[[1,3,5,7]] == \n", arr_2d[[1,3,5,7]], "\n")# 指定の行だけを順番を変えて取り出すprint("arr_2d[[7,5,1,3]] == \n", arr_2d[[7,5,1,3]], "\n")

実行結果

arr ==  [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20]arr[10] ==  10arr[0:11] == [ 0  1  2  3  4  5  6  7  8  9 10]arr[0:11] = 100 [100 100 100 100 100 100 100 100 100 100 100  11  12  13  14  15  16  17  18  19  20]arr ==  [ 0  1  2  3  4  5  6  7  8  9 10]slice_arr ==  [0 1 2 3 4]slice_arr ==  [100 100 100 100 100]arr ==  [100 100 100 100 100   5   6   7   8   9  10]arr_cp ==  [99 99 99 99 99 99 99 99 99 99 99]arr ==  [100 100 100 100 100   5   6   7   8   9  10]arr_2d == [[1 2 3] [4 5 6] [7 8 9]]arr_2d[1] ==  [4 5 6]arr_2d[0][1] & arr_2d[0,1] ==  2 2arr_2d[:2,1:] == [[2 3] [5 6]]arr_2d[:2,:] == [[1 2 3] [4 5 6]]arr_2d == [[ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.] [ 0.  0.  0.  0.  0.]]arr_2d == [[ 0.  0.  0.  0.  0.] [ 1.  1.  1.  1.  1.] [ 2.  2.  2.  2.  2.] [ 3.  3.  3.  3.  3.] [ 4.  4.  4.  4.  4.] [ 5.  5.  5.  5.  5.] [ 6.  6.  6.  6.  6.] [ 7.  7.  7.  7.  7.] [ 8.  8.  8.  8.  8.]]arr_2d[[1,3,5,7]] == [[ 1.  1.  1.  1.  1.] [ 3.  3.  3.  3.  3.] [ 5.  5.  5.  5.  5.] [ 7.  7.  7.  7.  7.]]arr_2d[[7,5,1,3]] == [[ 7.  7.  7.  7.  7.] [ 5.  5.  5.  5.  5.] [ 1.  1.  1.  1.  1.] [ 3.  3.  3.  3.  3.]]

参考サイト

関連記事

Python: pandasのSeriesオブジェクトの作成・参照・変換

本記事はPythonのデータ分析用ライブラリであるpandas内の代表的なSeriesオブジェクト(一次元のデータ列)の基本機能(作成・参照...

Python pip: エラー対処法 – “Could not find a version that satisfies the requirement PIL (from versions: ) No matching distribution found for PIL”

Python Imaging Library (PIL)をpipでインストールを試みたところ、下記のエラーメッセージが出力され、インストール...

NO IMAGE

Python: TCP/IPv4 Socket Server/Client (1 Client接続のみ)

PythonでSocketサーバ、クライアントの接続方法を下記のソースコードを用いて確認。C言語のどう程度のサンプルと比較すると行数が少なく...

Python: Kali LinuxにWingIDEをインストールする方法

Kali LinuxにPythonの統合開発環境の一つであるWingIDEのインストール手順を記載。前提情報インストール環境: 3....

NO IMAGE

Python: win32comモジュールのインストール方法

PythonでWindowsのアプリ・ファイルを扱う際に必要なwin32comモジュールのインストール方法を以下の通り。

pyenv: 解決法→Python環境のBUILD FAILED – "zipimport.ZipImportError: can’t decompress data; zlib not available"

エラー事象Mac OS X EI Capitan (v10.11.4)上でpyenvコマンドを用いてPython v3.5.1環境のイン...

NO IMAGE

Python: set型の集合演算で2つのリスト要素を比較

2つのリストの要素を比較する際、リスト型をset型に変えると「-」「&」などの演算子1つで集合演算できます(AND、OR、NOTとか)。ソ...

NO IMAGE

Python: 辞書の初期化・出力・代入

ソースコード#!/usr/bin/python# coding: UTF-8# 辞書とは: リストに似たデータ型で、要素(値)を指定...

NO IMAGE

Python: ファイル読み込み時の例外の扱い例 – try、except、else、finallyブロック

ファイルのパスや名前のミス、パーミッションの権限が無い等が原因でファイルを読み込めない場合がある。そのような場合、すなわち例外が発生した際に...

NO IMAGE

Python: ファイル、ディレクトリの属性確認(存在、読み込み、書き込み、実行)

ソースコード$ python>>> import os>>> os.access('/root', os.F_OK)True>>...


コメントをどうぞコメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

検索


Sponsored Link

最近の投稿

カテゴリー

アーカイブ

最近のコメント


[8]ページ先頭

©2009-2025 Movatter.jp