配列の演算
配列の演算
配列の演算:要素の演算に対応して、構造は完全に同じです.
(1)四則演算:+-*/**%
行ベクトル(または列ベクトル)と二次元配列の各ライン(または各列)を演算します.
一次元配列の並べ替え
sort:
ソートは元の配列を修正します.戻り値はありません.
並べ替えを行います.戻り値があり、戻り値は、並べ替え前の要素のインデックスに対応します.
sort:
配列の演算:要素の演算に対応して、構造は完全に同じです.
(1)四則演算:+-*/**%
import numpy as np
arr1 = np.arange(1,17).reshape((4,4))
# print(arr1)
arr2 = np.diag([2,3,1,5]) #
# print(arr2)
arr3 = arr1 * arr2 #
# print(arr3)
arr4 = arr2 / arr1 # 0
# print(arr4)
arr5 = arr1**arr2 #
# print(arr5)
arr6 = arr2%arr1 #
# print(arr6)
[[0 0 0 0]
[0 3 0 0]
[0 0 1 0]
[0 0 0 5]]
(2)比較演算<><=>=====print(arr1 > arr2) # , True, False
[[False True True True]
[ True True True True]
[ True True True True]
[ True True True True]]
# arr1 8
mask = arr1 >8
print(mask)
print(arr1[mask]) # mask
[[False False False False]
[False False False False]
[ True True True True]
[ True True True True]]
[0 0 1 0 0 0 0 5]
(3)論理演算ロジックと論理または演算# :all( ) True True
np.all(mask) # False
# :any( ) True True
np.any(mask)
True
(4)配列放送演算行ベクトル(または列ベクトル)と二次元配列の各ライン(または各列)を演算します.
arr7 = np.array([[1],[0],[1],[0]]) #
arr8 = np.array([1,0,1,0]) #
arr9 = arr1+arr7 #
arr10 = arr1+arr8 #
arr11 = arr1+np.array([1]) #
# print(arr11)
[[ 2 3 4 5]
[ 6 7 8 9]
[10 11 12 13]
[14 15 16 17]]
(5)特殊な方法一次元配列の並べ替え
sort:
ソートは元の配列を修正します.戻り値はありません.
# sort ,
arr12 = np.array([21,10,20,8,15,1])
# arr12.sort()
# print(arr12) # [ 1 8 10 15 20 21]
argsort:並べ替えを行います.戻り値があり、戻り値は、並べ替え前の要素のインデックスに対応します.
# argsort , ,
print(arr12.argsort()) # [5 3 1 4 2 0]
print(arr12)
[5 3 1 4 2 0]
[21 10 20 8 15 1]
二次元配列の並べ替え:sort:
# sort
#
# axis : axis=-1
# kind:
arr13 = np.array([[12,2,3,45,4],[12,34,345,567,56]])
# arr13.sort(axis=0)
# int(arr13)
argsort:# argsort ,
print(arr13.argsort())
[[1 2 4 0 3]
[0 1 4 2 3]]