Numpy data science foundation

Numpy data science foundation


Common functions

  • Generate a multi-dimensional array
    #Look at the dimension of the array directly and look at the number of the outermost "[[", such as "[" one-dimensional; "[[” two-dimensional; "[[[” three-dimensional;...
import numpy as np
example_1d = np.ndarray([1,2,3,4,5,6])    # 返回一个多维数组
# 可简写为 np.array([1,2,3,4,5,6])   # 生成一维数组

example_1d.sum()
example_1d.max()
example_1d.min()
np.average(example_1d)   # 平均值

# 生成二维数组
# 方式一:
example_2d = np.array([[1,2,3],   
                        [4,5,6]])
# 方式二:
example_2d = example_1d.reshape(2,3)  # 将一维数组强制转换为2*3的二维数组
  • Array slice
# 一维数组和List切片一样
# 二维数组array_2d[行,列] = array_2d[:2,1:2] # 读取第1行和第2行的第2列的元素
# ------------------------------------------------------
>>> import numpy as np
>>> array_1d = np.array([1,2,3,4,5,6,7,8,9])#生成一维数组
>>> #将一维数组强制转化为二维数组
>>> array_2d = array_1d.reshape(3,3)#转化为3*3的二维数组  
# -------------------------------------------------------
>>> array_1d.shape
(9,)
>>> array_2d.shape
(3, 3) 
# -------------------------------------------------------
>>> array_2d
array([[1, 2, 3],
      [4, 5, 6],
      [7, 8, 9]])
# -------------------------------------------------------
>>> array_2d[:,0]#读取所有行的第一列
array([1, 4, 7])
>>> array_2d[1:,:1]
array([[4],
      [7]])
>>> array_2d[1:,:2]
array([[4, 5],
      [7, 8]])

Vectorized computing

  • Basic principles
    (1) Do not use the for loop as
    much as possible (2) Try to use Numpy's own functions# Numpy is written in C language, so it runs very fast
    (3) Use broadcast more often
  • Matrix multiplication
>>> array_2d_1 = [[2],[2],[2]]
>>> array_2d_1   # 生成3*1的二维数组
[[2],
 [2], 
 [2]]
>>> array_2d     # 生成3*3的二维数组
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>> np.dot(array_2d,array_2d_1)   # 使用dot()方法生成3*1的数组
array([[12],
       [30],
       [48]])

broadcast

  • In simple terms, Numpy the broadcast function is to allow direct matrix as real as various operations
>>> example = np.array([[1,2,3],[4,5,6]])
>>> example.shape
(2, 3)
>>> example
array([[1, 2, 3],
       [4, 5, 6]])
>>> example+1         # 按照线性代数的知识,一个实数和矩阵是不能相加的                    
array([[2, 3, 4],     # 但Numpy的广播功能就能自动实现矩阵中每一个元素的乘除加减
       [5, 6, 7]])    # 这个功能对于数据科学计算很有用,不用去考虑复杂的循环实现
>>> example-1
array([[0, 1, 2],
       [3, 4, 5]])
>>> example*2
array([[ 2,  4,  6],
       [ 8, 10, 12]])
>>> example/2
array([[0.5, 1. , 1.5],
       [2. , 2.5, 3. ]])

Guess you like

Origin blog.csdn.net/Han_Panda/article/details/108001935