numpy 配列の用意

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 my_arr に 0 ~ 9 までの数字を要素としてもつ ndarray 配列を作成し、出力してください.

import numpy as np

# Q1:0 ~ 9 までの数字を要素としてもつ ndarray 配列を作成してください.
arr = ##########
print(arr)

[Q1の選択肢]
1. np.list(10)
2. np.arange(10)
3. np.make_array(10)

1 次元配列の計算

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 arr_1 と arr_2 の和、差を出力してください.
また、変数 3 と arr_1 の積、arr_1 の 3 乗を計算し出力してください.

import numpy as np

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

#Q1:和と差を出力してください.
##########
##########

[Q1の選択肢]
1.
print(“arr_1 + arr_ 2”)
print(“arr_1 – arr_ 2”)
2.
print(‘arr_1 + arr_2’)
print(‘arr_1 – arr_2’)
3.
print(arr_1 + arr_2)
print(arr_1 – arr_2)

#Q2:積と3乗を出力してください.
##########
##########

print(“arr_1 ** 3”)
print(arr_1 ** 3)

[Q2の選択肢]
1.
print(3 x arr_1)
print(arr_1 ** 3)
2.
print(3 * arr_1)
print(arr_1 ** 3)
3.
print(3 * arr_1)
print(arr_1 ^ 3)

ndarray クラスと 1 次元配列

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 NUM を ndarray 配列に変換し、変数 np_NUM に代入してください.
また、型を出力してください.

import numpy as np

NUM = [1, 2, 3, 4, 5, 6, 7]
print(NUM)

# Q1:変数NUM を ndarray に変換する.
np_NUM = ##########

[Q1の選択肢]
1. np(NUM)
2. np.array(NUM)
3. np.array([NUM])

#Q2:np_NUM の型を出力してください
print(##########)

[Q2の選択肢]
1. type(np_NUM)
2. np_NUM.type
3. np_num

インデックス参照とスライス

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 my_arr の要素のうち 6、7、8 を出力してください.
変数 my_arr の要素のうち 6、7、8 を 10 に置き換え、出力してください.

import numpy as np

my_arr = np.arange(10)

# Q1:変数 my_arr の要素のうち 6、7、8 を出力してください.
###########

[Q1の選択肢]
1. print(my_arr[5:9])
2. print(my_arr[6:8])
3. print(my_arr[6:9])

# Q2:変数 my_arr の要素のうち 6、7、8 を 10 に置き換えてください.
##########
print(my_arr)

[Q2の選択肢]
1. my_arr[6:9] = 10
2. my_arr([6:9] = 10)
3. my_arr[6:9 = 10]

ndarray.copy() の用途

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 arr_1 の要素を変数 arr_2 に代入してください.
この時、変数 arr_2 の要素を書き換えたとしても変数 arr_1 の値が変更されないようにしてください.
また、変数 arr_2 の要素のうち 1 を 10 に置き換え出力してください.

import numpy as np

arr_1 = np.arange(5)

# Q1:変数 arr_1 の要素を変数 arr_2 に代入してください.
##########

[Q1の選択肢]
1. arr_2 = arr_1
2. arr_2 = arr_1.copy()
3. arr_2 = np.copy(arr_1)

# Q2:変数 arr_2 の要素のうち 1 を 10 に置き換え出力してください.
##########
print(arr_2)

[Q2の選択肢]
1. arr_2[1] = 10
2. arr_2[0] = 10
3. arr_2[2] = 10

ブルーインデックス参照 – 論理値

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 my_arr の各要素が 3 の倍数であるかどうかを表す真偽値の配列を出力してください.
また、変数 my_arr の各要素のうち 3 の倍数の要素を出力してください.

import numpy as np

my_arr = np.arange(10)

# Q1:変数 my_arr の各要素が 3 の倍数であるかどうかを表す真偽値の配列を出力してください.
##########

# Q2:変数 my_arr の各要素のうち 3 の倍数の要素を出力してください.
##########

[Q1,Q2の選択肢]
1. print([my_arr % 3 == 0])
2. print(my_arr[my_arr / 3 == 0])
3. print(my_arr % 3 == 0)
4. print(my_arr[my_arr % 3 == 0])

ユニバーサル関数、1 次元配列の演算

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 my_arr の各要素の絶対値を求め変数 Q1_arr に代入し出力してください.
また、変数 Q1_arr の各要素の平方根と e のべき乗を求め結果を出力してください.

import numpy as np

my_arr = np.array([3, -5, 8, 9, 16, -36])

# Q1:絶対値を求め変数 Q1_arr に代入してください.
Q1_arr = #####(my_arr)
print(Q1_arr)

# Q2:変数 Q1_arr の各要素の平方根を求め、変数 Q2_arr に代入てください.
Q2_arr = #####(Q1_arr)
print(Q2_arr)

# Q3:変数 Q1_arr の各要素の e のべき乗を求め、変数 Q3_arr に代入してください.
Q3_arr = #####(Q1_arr)
print(Q3_arr)

[Q1,Q2,Q3の選択肢]
1. np_exp
2. np.abs
3. np.value
4. np.sqrt

和・積・差集合関数

次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
変数 my_arr の各要素の絶対値を求め、各要素の重複を取り除いてから変数 Q1_arr に代入し、出力してください.
変数 Q1_arr と 変数 my_arr2 の和集合と積集合を求めてください.

import numpy as np

my_arr = [2, 3, 7, 5, -2, 6, -8]
my_arr2 = [5, 2, 1, -1, 9, 3]

# Q1:変数 my_arr の各要素の絶対値を求め、各要素の重複を取り除いてから 変数 Q1_arr に代入してください.
Q1_arr = ##########
print(Q1_arr)

[Q1の選択肢]
1. np.unique(np.abs(my_arr))
2. np.array(np.abs(my_arr))
3. np.select(np.abs(my_arr))

# Q2:変数 Q1_arr と 変数 my_arr2 の和集合を求めてください.
print(##########)

# Q3:変数 Q1_arr と 変数 my_arr2 の積集合を求めてください.
print(##########)

[Q2,Q3の選択肢]
1. np.intersect1d(Q1_arr, my_arr2)
2. np.setdiff1d(Q1_arr, my_arr2)
3. np.union1d(Q1_arr, my_arr2)

スライスと view

Q1 : 下記のコードを動かした場合、得られる出力として正しいもの 1 ~ 3 から選んでください.

import numpy as np

my_list = [1, 2, 3, 4, 5]
my_arr1 = np.array(my_list)
my_arr2 = np.array(my_list)

my_arr1_copy = my_arr1[:]
my_arr1_copy[0] = 10
my_arr2_copy = my_arr2.copy()
my_arr2_copy[0] = 10
print(“スライスと ndarray.copy() による挙動の違いから view について理解する.”)
print(“my_arr1 : “, my_arr1)
print(“my_arr1_copy : “, my_arr1_copy)
print(“my_arr2 : “, my_arr2)
print(“my_arr2_copy : “, my_arr2_copy)

[Q1の選択肢]
1.
スライスと ndarray.copy() による挙動の違いから view について理解する.
my_arr1 : [1 2 3 4 5]
my_arr1_copy : [10 2 3 4 5]
my_arr2 : [1 2 3 4 5]
my_arr2_copy : [10 2 3 4 5]
2.
スライスと ndarray.copy() による挙動の違いから view について理解する.
my_arr1 : [10 2 3 4 5]
my_arr1_copy : [10 2 3 4 5]
my_arr2 : [1 2 3 4 5]
my_arr2_copy : [10 2 3 4 5]
3.
スライスと ndarray.copy() による挙動の違いから view について理解する.
my_arr1 : [10 2 3 4 5]
my_arr1_copy : [10 2 3 4 5]
my_arr2 : [10 2 3 4 5]
my_arr2_copy : [10 2 3 4 5]