HW1
.sh调用python脚本的方式
- 在.sh文件中直接调用python脚本(无参数)
#!/bin/bash
python gd.py
- 在.sh文件中调用python脚本,并直接传递参数的值
#!/bin/bash
python gd.py ./data/train.csv ./data/test.csv ./result/res.csv
- 在.sh文件中调用python脚本,并在执行时传递参数
#!/bin/bash
python gd.py $1 $2 $3
#执行命令:
# bash hw1.sh ./data/train.csv ./data/test.csv ./result/res.csv
# 在gd.py中获取传递过来的参数
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
inputTrain = sys.argv[1]
inputTest = sys.argv[2]
output = sys.argv[3]
其他相关方法参考:命令行运行Python脚本时传入参数的三种方式
numpy中的matrix与array的区别
np.matrices
必须是2维的,但是 np.arrays (ndarrays)
可以是多维的。Matrix是Array的一个小的分支,包含于Array,所以matrix 拥有array的所有特性。
np.matrix
的主要优势是:对应乘法用np.multiply()
,矩阵乘法可以直接用*
,而不用np.dot()
。而np.arrays (ndarrays)
中的*表示对应乘法。
关于np.array
import numpy as np
x = np.array([[1,2],[3,4],[5,6]]) #a.shape (3,2)
wb = np.array([1,2]) #b.shape (2,)
wc = np.array([[1,2]]) #c.shape (1,2)
#矩阵乘法
np.dot(x,wb) # (3,)
np.(x,wc.T) # (3,1)
#矩阵求逆
np.linalg.inv(x) # (2,3)
#全零矩阵
np.zeros(3)
np.zeros((3,1))
#全1矩阵
np.ones(3)
np.ones((3,1))
#单位矩阵
np.eye(3)
特别注意代码中wb, wc
两个数组的差别是:
- wb是一维的,wb.shape=(2, ),所以wb.T和wb是一样的。
- wc是二维的,wc.shape=(1,2)。
wb = [1 2]
wb.T = [1 2]
wc = [[1 2]]
wc.T = [[1]
[2]]