RWRui Wang / Ideas
← All notes

Learning

Machine Learning Fundamentals and NumPy

Machine Learning Fundamentals and NumPy cover
大家好,这里是Rui。刚从CU的summer immersion program回国。我选择了Machine Learning and Data Science 2这门课 感觉受益匪浅 跟大家分享我学习的内容

--------------------------------------------------------------------------------------------------------------
Machine Learning最重要的就是理解为什么要做Machine Learning。 ML在我看来就是让生硬的机器掌握某一件事的规律, 给到你想要的答案。

 
当然,ML大部分开展在Python这个语言,所以今后的分享基本都是基于Python的教学。


首先ML最重要的第一步就是获得数据


对于初学者,我建议大家可以使用Google Colab这个Website去做开发。Google Colab提供免费的算力,而且为开发者省去了pip install(或者pip3 install)这个非常烦人的动作。这也是为什么新手开发者建议在Colab开始。这里附上Google Colab的链接:https://colab.research.google.com/


对于获取数据,一般有几种渠道:一种是直接获取csv,json等格式的Datasets,这种方式的一大优点就是易上手。第二种是通过API获取,这个方式会在之后讲解。第三种就是在online的sites中直接提取数据,例如以png,jpeg形式存在的图片表格。这里不再过多赘述。


获取数据的几种形式大概就这些,那么怎么搭建起Colab和数据的桥梁呢?
这就要说到在ML和DS里面最基础的numpy了


numpy是一个非常好用的库,运算速度远超python原生,多用于多维矩阵运算。


加载库的方法,如下:

import numpy as np


可以在Google Colab的一个code cell中单独写这些加载库,会比较方便。
运行这个cell,会看到即时便运行成功,说明库成功地被加载了。


既然numpy主要用于矩阵运算,那么就要说到numpy array了。


我们可以创建一个python原生的list,例如:


list = [1,2,4,6,4,5]


转化为numpy array:

L = numpy.array(list)


这样一个numpy array就创建好了。


跟list的特性相像,可以通过index来获取array中对应的值,例如:

             


        [1, 2, 3, 4, 5, 6, 7]

index:   0  1  2  3  4  5  6                   
         ^      
         |
         |
x =  L [ 0 ]


这时,应该不难发现,x被赋值成了array里面第0个值,也就是1这时候,x和普通的python数字1并无区别,拥有相同的特性。

前面讲述的是最简单的一维数组,那么二维呢?                                                                  

x1 = [1,2,3,4,5]
     [2,3,4,5,6]
     [3,4,5,6,7]  

转化成numpy array:


list = numpy.array(x1)

那么你已经学会了创建numpy array了,接下来就是数组运算了


numpy array的运算遵循linear algebra的矩阵运算法则,具体如下图:


加减法:

Screenshot 2026-07-30 at 13.34.05

code实现:


import numpy as np
x1 = [1,2,3]
x2 = [2,5,7]

list1 = np.array(x1)
list2 = np.array(x2)

list_addition = list1 + list2
#另一种方法:
list_add = np.add(list1, list2)

#减法也是一样,把“+”换成“-”,把“.add"换成“.subtract"


接下来是数组的整体计算,为了方便,不多赘述具体原理,方法如下图:


download

代码实现(这里因为篇幅限制,就不一一实现,只实现部分常用):

这里使用numpy的array生成方法简单偷懒创建一个array

import numpy as np

x = np.arange(4)

# x -> [1,2,3,4]

print("x      =", x)
print("x + 5  =", x + 5)
print("x - 5  =", x - 5)
print("x * 2  =", x * 2)
print("x / 2  =", x / 2)
print("x // 2 =", x // 2)


好了,看到这里,你已经学会了大部分numpy array的用法。这一期就结束了。

下一期,我将分享基本的数据集导入及清洗,以及pandas的基本方法。我们下期见!拜拜~