
numpyãšãã¢ãããŒã«ç©
ã¯ããã«
çãããããã«ã¡ã¯ã
ä»åã¯ãã¢ãããŒã«ç©ãšãnumpy äžã§ã®ã¢ãããŒã«ç©ã®å®çŸæ¹æ³ã«ã€ããŠã話ããããŠããã ãããšæããŸãã
numpyãšã¯ïŒïŒ
numpy ã¯ãããã°ã©ãã³ã°èšèªÂ python ã«ãããç¹å®ã®èšç®ããé«éã«å®æœããããã®ã©ã€ãã©ãªã«ãªããŸãã
å ããpython ã«ã€ããŠã¯ãå¥é以äžã®èšäºããããŸãã®ã§ãããã£ããåç §äžããã
numpy ã«é¢ããŠã¯ã以äžã®èšäºã numpy ã®é«éåã«ã€ããŠè§ŠããŠããŸãã®ã§ããã¡ããããã£ããåç §äžããã
ã¢ãããŒã«ç©ãšã¯ïŒïŒ
ã¢ãããŒã«ç©ã«ã€ããŠã¯ãwikiã«è©³ãã説æããããŸããã
äžèšã§èª¬æããã°ãwikiäžã«ãã以äžã®ç»åã®ãããªåœ¢ã«ãªããŸãã
èŠããã«ã¯ãåãèŠçŽ æ°ãæã£ãè¡åãæãã¯ããã¯ãã«ã«ã€ããŠãå座æšåå£«ã®æãåãããè¡ãèšç®ã®ä»æ¹ã«ãªããŸãã
察ããŠãäžè¬çãªè¡åç©ã¯ãç°ãªãèšç®ä»æ§ã«ãªããŸãã
è¡åç©ãç·åœ¢ä»£æ°ã®åºæ¬çãªèãæ¹ã«ã€ããŠã¯ã以äžã®èšäºãåç
§ããã ããããšæããŸãã
ã¢ãããŒã«ç©ã®èšç®ä»æ§ãã€ã¡ãŒãžã«ãããšã以äžã®æ§ã«ãªããŸãã
å°ãã¢ãããŒã«ç©ã®èšå·ã¯ãâã«ãªããŸãã
å座æšã®å€å士ãæãåãããŠããã®æãç®ã®çµæããå座æšã«ã»ãããã圢ã§ãã
äžæ¹ãè¡åç©ã®èšç®ä»æ§ã¯ã以äžã€ã¡ãŒãžãšãªããŸãã
numpyã§å®è£ ãããšãã©ããªããïŒ
äžèšã®äŸããnumpy ã§å®è£ ãããšã以äžã®ããã«ãªããŸãã
import numpy as np
A = np.array([[1, 4],
[3, 6],
[8, 2]])
B = np.array([[3, 2],
[5, 1],
[7, 10]])
print('A * B = ')
print(A * B)
print()
print('A.T @ B = ')
print(A.T @ B)åºåçµæã¯ä»¥äžã«ãªããŸã
A * B =
[[ 3 8]
 [15 6]
 [56 20]]
A.T @ B =
[[74 85]
 [56 34]]
ç¹æ®ãªã±ãŒã¹ã«ããããnumpyã®ã¢ãããŒã«ç©çãªèšç®ä»æ§
ã¢ãããŒã«ç©ã¯ãåºæ¬çã«èŠçŽ æ°ãçããè¡åå士ããã¯ãã«å士ã§ã®èšç®ãåºæ¬ã§ã¯ãããŸãããå®éã«ã¯ãããå°ãæ¡åŒµãããæããã£ããããŸãã
äŸãã°ãè¡åãšãã¯ãã«ãšãã¢ãããŒã«ç©çã«èšç®ããã±ãŒã¹ã§ãã
ã±ãŒã¹ãšããŠã¯ããã¯ãã«ã瞊ã§ããã±ãŒã¹ãšã暪ã§ããã±ãŒã¹ãšã®2ã€ããããŸãã
åè
ã±ãŒã¹ã®ã€ã¡ãŒãžã¯ä»¥äžã§ãã
numpy ã§ã¢ãããŒã«ç©ãšåæ§ã«
ããã¯ãèŠããã«ã¯ã瞊ã®ãã¯ãã«ããæšªã«ã³ããŒããŠãã¢ãããŒã«ç©ãåããããªåœ¢ã§ãã
åŸè ã±ãŒã¹ã®ã€ã¡ãŒãžã¯ä»¥äžã§ãã
ãã¡ãããæšªã®ãã¯ãã«ãã瞊ã«ã³ããŒããŠãã¢ãããŒã«ç©ã宿œããŠãããŸãã
æãã¯ãè¡åãšã¹ã«ã©ãŒã®æãç®ã®å Žåã¯ãè¡åã®å šèŠçŽ ã«å¯ŸããŠã宿°åã宿œãã圢ã«ãªããŸãã
ãã¡ãããèŠããã«ã¯ãã¹ã«ã©ãŒã瞊暪ã«ã³ããŒããŠãããã¢ãããŒã«ç©ã宿œããŠãã圢ã§ãã
å°ãã¢ãããŒã«ç©ãæãã¯ãã¢ãããŒã«ç©çãªèšç®ãããå Žåãæãç®èšå·ã®ååŸã®å€æ°ãå
¥ãæ¿ãã£ãŠããèšç®çµæã¯å€ãããŸããã
import numpy as np
A = np.array([[1, 4],
[3, 6],
[8, 2]])
b = np.array([[3],
[5],
[7]])
c = np.array([[3, 2]])
d = np.array([3])
print('A * b = ')
print(A * b)
print()
print('b * A = ')
print(b * A)
print()
print('A * c = ')
print(A * c)
print()
print('c * A = ')
print(c * A)
print()
print('A * d = ')
print(A * d)
print()
print('d * A = ')
print(d * A)ããã°ã©ã ã®åºåçµæã¯ä»¥äžãšãªããŸãã
A * b =
[[ 3 12]
 [15 30]
 [56 14]]
b * A =
[[ 3 12]
 [15 30]
 [56 14]]
A * c =
[[ 3 8]
 [ 9 12]
 [24 4]]
c * A =
[[ 3 8]
 [ 9 12]
 [24 4]]
A * d =
[[ 3 12]
 [ 9 18]
 [24 6]]
d * A =
[[ 3 12]
 [ 9 18]
 [24 6]]
äžæ¹ãè¡åç©ã®å Žåã¯ãäŸãã°ãè¡å A ãšè¡å B ã«ã€ããŠãAB ãš BA ã®çµæã¯ç°ãªããŸãã
A = np.array([[3, 2],
[1, 6]])
B = np.array([[4, 3],
[2, 1]])
print('A @ B = ')
print(A @ B)
print()
print('B @ A = ')
print(B @ A)ããã°ã©ã ã®åºåçµæã¯ã以äžãšãªããŸãã
A @ B =
[[16 11]
 [16 9]]
B @ A =
[[15 26]
 [ 7 10]]
è§£éããããããã®ã§ããã£ãforæã«ããŠããŸãã°âŠ
äžèšãã¢ãããŒã«ç©çãªèšç®ã«é¢ããŠã¯ãè§£éãè¥å¹²é£ããã®ã§ããªããªãforæã䜿ã£ãŠèšç®ã衚çŸããæ¹ãè¯ãã®ã§ã¯ãªããâŠïŒãšæããŠããæ¹ãããããšã§ãããã
ããããå®ã¯ãpython ã«ã¯ãfor æã«ããããã©ãŒãã³ã¹äœäžã®åé¡ããããŸãã
numpy ã®æ©èœãçšããŠãfor æã䜿ããã«å®è£
ããæ¹ããæé©åãããã©ã€ãã©ãªæ©èœããã«ã«äœ¿ãããšã§ãããã©ãŒãã³ã¹ãæ Œæ®µã«åäžããã®ã§ãã
ãã®èŸºãã«ã€ããŠã¯ã以äžã®èšäºã«ãŸãšããããŠããŸãã®ã§ãåèã«ããŠäžããã
èšäºäžã«å®æœããå®éšã§ã¯ã1000äžåã®èŠçŽ ãæã€è¡åå士ã®ã¢ãããŒã«ç©ã«ãŠã250åçšã®é«éåãå®çŸãããŠããŸãã
250åã®é«éåãšãããšâŠã
é«éåã®ã¹ã±ãŒã«ãšããŠãã4å â 1ç§ããã4æé â 1åããã10æ¥ â 1æéããšããå
·åã§ãã
ã¹ãŽãéãã§ããã
ãã®çºã仿§ãçè§£ããŠãnumpy ã䜿ã£ãã¢ãããŒã«ç©æŒç®ãè¡ãããšã«ã¯ããšãŠãæå³ããããŸãã
ãããã«
以äžã§ãã¢ãããŒã«ç©ã«é¢ããèšäºãçµããŸãã
ãããŸã§èªãã§ãã ãã£ãæ¹ãæ¬åœã«ããããšãããããŸãããð










