李宏毅机器学习从零开始的小白学习过程之作业篇

@[机器学习]

#机器学习HW0

import numpy as np

matrixA = []
for i in open("matrixA.txt"):
    row = [int(x) for x in i.split(",")]
    matrixA.append(row)

matrixB = []
for j in open("matrixB.txt"):
    row = [int(x) for x in j.split(",")]
    matrixB.append(row)

matrixA = np.array(matrixA)
matrixB = np.array(matrixB)

ans = matrixA.dot(matrixB)
ans.sort(axis=1)

np.savetxt("Q1_ans.txt", ans, fmt="%d", delimiter="\r\n")

首先,你会得到这样的源代码,但是实际上很有可能编译不通过,会出现“FileNotFoundError: [Errno 2] No such file or directory: ‘/01-Data\matrixA.txt’”这样的错误,他们无法找到maxtrixA这个文本,实际上这是由于maxtrixA与这个python代码不在同一级文件夹内导致的错误。解决的办法有两种:第一种最直接的方法就是把这两个文件从01-Data文件夹移动到同一个文件夹。不过这个办法不是很推荐,因为当文件众多的时候这样子会显得整个项目排列的非常混乱。
另外一种办法就是利用打开文件的绝对路径或者相对路径方法。绝对路径比较简单就是全部照抄把路径。相对路径就是在这个前面添加./01-Data就可以,表示的是在当前文件夹(就是HW0文件夹)的01-Data文件夹里的东西。所以最后修正后的代码就是:

import numpy as np

matrixA = []
for i in open("./01-Data/matrixA.txt"):
    row = [int(x) for x in i.split(",")]
    #这里的i.split表示去除txt里面的‘,’标识,只读取数字。即用逗号作为分隔符进行切片操作。
    matrixA.append(row)

matrixB = []
for j in open("./01-Data/matrixB.txt"):
    row = [int(x) for x in j.split(",")]
    matrixB.append(row)

matrixA = np.array(matrixA)
matrixB = np.array(matrixB)

ans = matrixA.dot(matrixB)
ans.sort(axis=1)

# np.savetxt("Q1_ans.txt", ans, fmt="%d", delimiter="\r\n")
np.savetxt("./02-Output/Q1_ans.txt", ans, fmt="%d", delimiter="\r\n")
#这里可以改成下面那个代码就能把输出放进Output文件夹里面了。

其他地方这个就没有什么难点了,无非就是将其转换为np中的array数组,然后利用np.dot函数进行矩阵相乘。

另外一个处理图片的函数一样的问题,修改后的代码如下:

from PIL import Image

lena = Image.open("./01-Data/lena.png")
lena_modified = Image.open("./01-Data/lena_modified.png")

w, h = lena.size
for j in range(h):
    for i in range(w):
        if lena.getpixel((i, j)) == lena_modified.getpixel((i, j)):
            lena_modified.putpixel((i, j), 255)
#getpixel is to get the position of the pixel, and putpixel is replace the position by the command color.
#255 represents white color.
lena_modified.show()
lena_modified.save("./02-Output/ans_two.png")

所以作业0没有什么难度,主要就是熟悉怎么打开文件和了解一些python基本知识。之后我在解答各个作业的时候也会补充非常多的python的函数怎么用,便于今后的学习与理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值