ソフトウェア
中級

スライス(スライス)

データを部分抽出する操作。Python / JavaScript の配列スライス、Mermaid Slice、3D プリント Slicing、Web デザインの画像分割等で使われる。

0 回閲覧
0 いいね
2026/5/2 更新
関連タグ
Python
JavaScript
3Dプリント
Pandas
OrcaSlicer

概要

スライス(Slice)は、データやオブジェクトの一部を抽出する操作を指し、文脈により多義的に使われる:

  1. 配列スライス: Python / JavaScript / Ruby 等の配列・文字列の部分抽出
  2. DataFrame スライス: Pandas / Polars / NumPy の行 / 列抽出
  3. 3D プリント スライシング: 3D モデル → レイヤー単位の G-code 生成
  4. 画像スライス: Web デザインで大画像を分割
  5. 時系列スライス: 時間範囲指定でデータ抽出
  6. GPU テンソルスライス: PyTorch / TensorFlow の部分計算

2026 年現在、最も頻出は配列スライスとデータ分析の DataFrame スライスで、AI / ML パイプラインでも標準操作となっている。

言語別スライス構文

Python

arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
arr[2:5]        # [2, 3, 4](start:stop)
arr[::2]        # [0, 2, 4, 6, 8](step=2)
arr[::-1]       # [9, 8, 7, ..., 0](逆順)
arr[-3:]        # [7, 8, 9](後ろ 3 つ)

# 文字列も同様
s = "Hello"
s[1:4]          # "ell"

JavaScript / TypeScript

const arr = [0, 1, 2, 3, 4, 5];
arr.slice(2, 5);   // [2, 3, 4]
arr.slice(-2);     // [4, 5]
arr.slice();       // 浅いコピー全体

// 不変版(ES2023+)
arr.toSpliced(2, 1);  // 削除版を返す(元配列は不変)

// 文字列
"Hello".slice(1, 4);  // "ell"

Pandas DataFrame

import pandas as pd
df = pd.DataFrame({"A": [1,2,3], "B": [4,5,6], "C": [7,8,9]})

df.iloc[0:2]              # 行 0-1
df.iloc[:, 0:2]           # 列 A-B
df.loc["row1":"row3"]     # ラベルベース
df.loc[df["A"] > 1]       # 条件抽出(ブールマスク)

NumPy

import numpy as np
a = np.arange(20).reshape(4, 5)
a[1:3, 2:4]    # 2x2 部分行列
a[::2, ::2]    # ステップスライス

PyTorch / TensorFlow

import torch
t = torch.arange(24).reshape(2, 3, 4)
t[0]           # 最初のバッチ
t[:, 1, :]     # 全バッチの 2 番目の行
t[..., -1]     # 最後の次元の最後

3D プリント スライシング

3D モデル(STL / 3MF)→ 1 レイヤー(0.08-0.4mm)ごとに分割 → G-code 生成。

ソフト形態特徴
OrcaSlicerOSS2026 年の業界標準
PrusaSlicerOSSPrusa MK4S / XL 用
Bambu Studio公式Bambu Lab P1S / X1C / A1
CuraOSSUltimaker 系
ChiTuBox商用 $169レジン系
Lychee Slicer商用 $60/年レジン特化

スライシングの主要設定

設定標準値用途
レイヤー高さ0.2mm標準 PLA
ノズル温度215°CPLA
インフィル密度15-20%強度 vs 速度
ウォール数3強度
プリント速度100-300mm/sKlipper で高速化
Adaptive LayerON凹凸面のみ薄レイヤー

Web デザインの画像スライス

CSS Sprites / SVG / フィレット切り抜き等で大画像を効率配信。HTTP/2 普及で重要性は減少したが、HTML email / 一部の SaaS UI で残存。

/* CSS Sprite の例 */
.icon-home {
  background-image: url('sprite.png');
  background-position: -0px -32px;
  width: 32px; height: 32px;
}

データ分析での頻出パターン

# 直近 30 日のデータ
df_recent = df[df['date'] >= pd.Timestamp.now() - pd.Timedelta(days=30)]

# 上位 10 行
df.head(10)
df.iloc[:10]

# 偶数行のみ
df.iloc[::2]

# 最初の 80% を train、残り 20% を test
n = len(df)
train, test = df.iloc[:int(n*0.8)], df.iloc[int(n*0.8):]

PC スペック要件

  • 小規模配列スライス: 任意 PC で十分
  • 大規模 DataFrame(GB 級): 64 GB RAM 推奨
  • 3D プリントスライシング(複雑モデル): Ryzen 7 9700X / 32 GB RAM
  • GPU テンソルスライス: RTX 4070 SUPER + 64 GB RAM

関連用語との違い

用語違い
インデックス単一要素アクセス、スライスは範囲
フィルタ条件抽出、スライスは位置指定
マッピング全要素変換、スライスは選択
切り取り(Cut)元データから削除、スライスは非破壊

よくある質問

Q1: Python の [start:stop:step] で start 省略は何? A: 0 の意。arr[:5] は arr[0:5] と同じ。stop 省略は配列末尾、step 省略は 1。

Q2: JavaScript で配列を浅くコピーする最速の方法は? A: arr.slice() か [...arr] がほぼ同等。スプレッド構文の方が読みやすく、一般的なコード推奨。

Q3: 3D プリントのスライシングで一番品質に影響する設定は? A: レイヤー高さ。0.2mm(標準)→ 0.08mm(高精細)で品質劇的向上、印刷時間 2.5 倍。Adaptive Layer Height で「凹凸面だけ薄く」が現実的折衷案。

まとめ

  • データの 部分抽出 操作、配列 / DataFrame / 3D / 画像で多用
  • 言語別構文(Python [:]、JS slice())を覚えれば応用が利く
  • 3D プリントは OrcaSlicer / PrusaSlicer がスライシング主軸
この記事について
カテゴリーソフトウェア
難易度中級
作成日2026/5/2