Python: Numpy入門

NumpyはPythonの数値計算用ライブラリです。Numpyを使用することで、行列計算を高速に行うことができます。

任意の1次元配列を作成

  1. import numpy as np
  2. data = [1, 2, 3, 4]
  3. arr = np.array(data)
  4. print(arr)
  5. #[1 2 3 4]
  6. print(type(arr))
  7. #<class 'numpy.ndarray'>
  8. print(arr.shape)
  9. #(4,)

任意の2次元配列を作成

  1. import numpy as np
  2. data = [[1, 2, 3, 4], [5, 6, 7, 8]]
  3. arr = np.array(data)
  4. print(arr)
  5. #[[1 2 3 4]
  6. # [5 6 7 8]]
  7. print(arr.shape)
  8. #(2, 4)

要素がすべて0の配列を作成

  1. import numpy as np
  2. arr = np.zeros(10)
  3. print(arr)
  4. #[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
  5. print(arr.shape)
  6. #(10,)
  7. arr = np.zeros((3, 4))
  8. print(arr)
  9. #[[0. 0. 0. 0.]
  10. # [0. 0. 0. 0.]
  11. # [0. 0. 0. 0.]]
  12. print(arr.shape)
  13. #(3, 4)

要素がすべて1の配列を作成

  1. import numpy as np
  2. arr = np.ones(10)
  3. print(arr)
  4. #[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
  5. print(arr.shape)
  6. #(10,)
  7. arr = np.ones((3, 4))
  8. print(arr)
  9. #[[1. 1. 1. 1.]
  10. # [1. 1. 1. 1.]
  11. # [1. 1. 1. 1.]]
  12. print(arr.shape)
  13. #(3, 4)

連続した数字の配列を作成

  1. import numpy as np
  2. arr1 = np.arange(10)
  3. print(arr1)
  4. #[0 1 2 3 4 5 6 7 8 9]
  5. print(arr1.shape)
  6. #(10,)
  7. arr2 = np.arange(5, 10)
  8. print(arr2)
  9. #[5 6 7 8 9]
  10. print(arr2.shape)
  11. #(5,)
  12. arr3 = np.arange(2, 10, 2)
  13. print(arr3)
  14. #[2 4 6 8]
  15. print(arr3.shape)
  16. #(4,)

基本的な計算

  1. import numpy as np
  2. data1 = [[1, 2], [3, 4]]
  3. arr1 = np.array(data1)
  4. data2 = [[0, 1], [2, 3]]
  5. arr2 = np.array(data2)
  6.  
  7. print(arr1)
  8. #[[1 2]
  9. # [3 4]]
  10. print(arr1.shape)
  11. #(2, 2)
  12. print(arr2)
  13. #[[0 1]
  14. # [2 3]]
  15. print(arr2.shape)
  16. #(2, 2)
  17.  
  18. print(arr1 * arr2)
  19. #[[ 0 2]
  20. # [ 6 12]]
  21. print(arr1 - arr2)
  22. #[[1 1]
  23. # [1 1]]
  24. print(arr2 / arr1)
  25. #[[0. 0.5 ]
  26. # [0.66666667 0.75 ]]
  27. print(arr1 ** 2)
  28. #[[ 1 4]
  29. # [ 9 16]]
  30. print(arr1 > arr2)
  31. #[[ True True]
  32. # [ True True]]

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です