5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paizaラーニングレベルアップ問題集の「配列活用メニュー」を、numpyとpandasでやってみた。

Last updated at Posted at 2025-12-01

paizaラーニングレベルアップ問題集の配列活用メニューを、numpyとpandasを使ってやってみました。


指定の要素のカウント
問題

numpy
import numpy as np
N, K = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
print(np.count_nonzero(A == K))
pandas
import pandas as pd
N, K = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
print(A[A == K].size)

全ての要素の和
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
print(A.sum())
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
print(A.sum())

配列の最大値
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
print(A.max())
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
print(A.max())

配列の最小値
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
print(A.min())
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
print(A.min())

指定要素があるかの判定
問題

numpy
import numpy as np
N, K = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
print("Yes" if np.any(A == K) else "No")
pandas
import pandas as pd
N, K = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
print("Yes" if A.isin([K]).any() else "No")

指定要素の先頭位置
問題

numpy
import numpy as np
N, K = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
indices = np.where(A == K)[0]
print(indices[0] + 1 if indices.size else -1)
pandas
import pandas as pd
N, K = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
indices = A[A == K].index
print(indices[0] + 1 if indices.size else -1)

要素の種類数
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
B = np.bincount(A)
print(np.count_nonzero(B))
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
print(A.nunique())

全ての要素に対する操作
問題

numpy
import numpy as np
N, K = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
B = A + K
for b in B:
	print(b)
pandas
import pandas as pd
N, K = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
B = A + K
for b in B:
	print(b)

配列の順序の反転
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
B = np.flip(A)
for b in B:
	print(b)
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
B = A.iloc[::-1]
for b in B:
	print(b)

変数の入れ替え
問題

解答例
X, Y = map(int, input().split())
X, Y = Y, X
print(X, Y)

指定要素の入れ替え
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
X, Y = map(lambda i : int(i) - 1, input().split())
A[X], A[Y] = A[Y], A[X]
for a in A:
	print(a)
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
X, Y = map(lambda i : int(i) - 1, input().split())
A[X], A[Y] = A[Y], A[X]
for a in A:
	print(a)

末尾への要素の追加
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
B = np.append(A, int(input()))
for b in B:
	print(b)
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
B = pd.concat([A, pd.Series([int(input())])], ignore_index=True)
for b in B:
	print(b)

指定位置への要素の追加
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
n, b = map(int, input().split())
B = np.insert(A, n, b)
for b in B:
	print(b)
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
n, b = map(int, input().split())
B = pd.concat([A.iloc[:n], pd.Series(b), A.iloc[n:]])
for b in B:
	print(b)

指定要素の削除
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
B = np.delete(A, int(input()) - 1)
for b in B:
	print(b)
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
n = int(input())
B = pd.concat([A.iloc[:n-1], A.iloc[n:]])
for b in B:
	print(b)

九九表
問題

numpy
import numpy as np
A = np.arange(1, 10)
M = np.outer(A, A)
for row in M:
	print(*row)
pandas
import pandas as pd
s = pd.Series(range(1, 10))
df = s.to_frame().dot(s.to_frame().T)
for row in df.iterrows():
	print(*row[1])

全ての要素を用いた処理
問題

numpy
import numpy as np
N = int(input())
A = np.array([int(input()) for _ in range(N)])
M = np.outer(A, A)
for i in np.arange(1, N):
	for j in np.arange(i):
		print(M[i][j])
pandas
import pandas as pd
N = int(input())
s = pd.Series([int(input()) for _ in range(N)])
df = s.to_frame().dot(s.to_frame().T)
for i in range(1, N):
	for j in range(i):
		print(df.iloc[i, j])

配列のサイズの変更
問題

numpy
import numpy as np
N, n = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
A.resize(n)
for a in A:
	print(a)
pandas
import pandas as pd
N, n = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
A = A.reindex(range(n)).fillna(0).astype(int)
for a in A:
	print(a)

重複要素の削除
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
uniq = np.unique(A, return_index=True)
for i in np.sort(uniq[1]):
	print(A[i])
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
for a in A.unique():
	print(a)

条件を満たす要素のみの配列作成
問題

numpy
import numpy as np
N, K = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
B = A[A >= K]
for b in B:
	print(b)
pandas
import pandas as pd
N, K = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
B = A[A >= K]
for b in B:
	print(b)

傾斜配点
問題

numpy
import numpy as np
N = int(input())
M = np.array([int(m) for m in input().split()])
max_score = -np.inf
for _ in range(N):
	A = np.array([int(a) for a in input().split()])
	score = M @ A
	if score > max_score:
		max_score = score
print(max_score)
pandas
import pandas as pd
N = int(input())
M = pd.Series([int(m) for m in input().split()])
max_score = pd.NA
for _ in range(N):
	A = pd.Series([int(a) for a in input().split()])
	score = M.dot(A)
	if pd.isna(max_score) or score > max_score:
		max_score = score
print(max_score)

内定
問題

numpy
import numpy as np
N, K, M = map(int, input().split())
A = np.array([int(input()) for _ in range(N)])
B = np.sort(A)[~M::-1]
print(np.sum(B >= K))
pandas
import pandas as pd
N, K, M = map(int, input().split())
A = pd.Series([int(input()) for _ in range(N)])
B = A.sort_values(ascending=False, ignore_index=True)[M:]
print(B[B >= K].size)

queue(9)係
問題

numpy
import numpy as np
N = int(input())
A = np.array([], dtype=int)
for _ in range(N):
	query = input().split()
	if query[0] == "in":
		A = np.append(A, int(query[1]))
	elif query[0] == "out":
		A = A[1:]
for a in A:
	print(a)
pandas
import pandas as pd
N = int(input())
A = pd.Series([], dtype=int)
for _ in range(N):
	query = input().split()
	if query[0] == "in":
		A = pd.concat([A, pd.Series([int(query[1])])], ignore_index=True)
	elif query[0] == "out":
		A = A.iloc[1:]
for a in A:
	print(a)

二人三脚
問題

numpy
import numpy as np
A = np.array([int(input()) for _ in range(int(input()))])
A.sort()
D = np.diff(A)
k = np.where(D == D.min())[0][0]
print(A[k])
print(A[k+1])
pandas
import pandas as pd
A = pd.Series([int(input()) for _ in range(int(input()))])
A = A.sort_values(ignore_index=True)
D = A.diff()[1:]
k = D[D == D.min()].index[0]
print(A[k-1])
print(A[k])

場所取り
問題

numpy
import numpy as np
_, K, F = map(int, input().split())
A = np.array([int(input()) for _ in range(K)])
uniq = np.unique(A[F:], return_index=True)
for i in np.sort(uniq[1]):
	print(A[F+i])
pandas
import pandas as pd
_, K, F = map(int, input().split())
A = pd.Series([int(input()) for _ in range(K)])
uniq = A[F:].unique()
for a in uniq:
	print(a)

ボウリング
問題

numpy
import numpy as np
P = np.array([], dtype=int)
for _ in range(4):
	P = np.concatenate([P, np.array([int(p) for p in input().split()])])
print(10 - np.where(P == 1)[0][-1])
print(P.sum())
pandas
import pandas as pd
P = pd.Series([], dtype=int)
for _ in range(4):
	P = pd.concat([P, pd.Series([int(p) for p in input().split()])], ignore_index=True)
print(10 - P[P == 1].index[-1])
print(P.sum())

集団行動
問題

numpy
import numpy as np
N, Q = map(int, input().split())
A = np.arange(1, N+1)
for _ in range(Q):
	query = input().split()
	s = query[0]
	if s == "swap":
		a, b = map(lambda x : int(x) - 1, query[1:])
		A[a], A[b] = A[b], A[a]
	elif s == "reverse":
		A = np.flip(A).copy()
	elif s == "resize":
		c = int(query[1])
		if c < A.size:
			A.resize(c)
for a in A:
	print(a)
pandas
import pandas as pd
N, Q = map(int, input().split())
A = pd.Series(range(1, N+1))
for _ in range(Q):
	query = input().split()
	s = query[0]
	if s == "swap":
		a, b = map(lambda x : int(x) - 1, query[1:])
		A[a], A[b] = A[b], A[a]
	elif s == "reverse":
		A = A[::-1].reset_index(drop=True)
	elif s == "resize":
		c = int(query[1])
		if c < A.size:
			A = A[:c]
for a in A:
	print(a)
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?