记录基本操作
不同py文件下数据的传输
前提是同一个目录下
在A.py文件中定义一个data函数
def data():
demo = pd.read_csv('C:/Users/Jin_liang/Desktop/F2-30组train.csv',delimiter=",",header=None)
demo=np.array(demo) #格式转换
c = np.random.randint(1,1000)
np.random.seed(c)
np.random.shuffle(demo) #数据打乱
demo = demo[0:10] #取打乱的前10组数据
# print(demo.shape,)
# _
X=demo[:,:4] #数据分列
y=demo[:,4:5] X_train,X_test,y_train,y_test,=train_test_split(X,y,test_size=0.4,shuffle='on') #数据分割,训练集测试集
return X_train,X_test,y_train,y_test #返回值
在了B.py中调用A中data的数据
from A import data
(X_train,X_test,y_train,y_test)= data()
print(X_train,X_test,y_train,y_test)
矩阵的运算规则
一定一定注意python的broadcast机制,对于矩阵如果维度一致,一个维度相同, 其中另外一个维度的其中一方为1,会自动扩充。
在计算多个数据的时候需要注意矩阵的转置。
import numpy as np
x = np.array([[1 ,2, 3, 4],
[2 ,3 ,5, 1],
[3 ,2, 1, 0]])
y1 = x[0]**2
print('y1',y1)
运算结果为:y1 [1 4 9 16]
此运算,就是把X的第一行平方赋值给y1
import numpy as np
x = np.array([[1 ,2, 3, 4],
[2 ,3 ,5, 1],
[3 ,2, 1, 0]])
y2 = x[0]**2+3*x[1]
print('y2',y2)
运算结果为:y2 [7 13 24 19]
此时运算为:X的第一行去平方和3×X的第二行相加得y2
#计算两个矩阵的复杂运算
设有二维矩阵
A=[[1,4,2],[2,3,4],[3,3,6]]
B=[[1,2],[0.5,3]]
进行运算Y2 = A[0]**B[:,[0]]+B[:,[1]]*A[1]
A[0]=[1,4,2]为矩阵A的第一行;注意python的起始序号从0开始
B[:,[0]] = [[1],[0.5]]为矩阵B的第一列;
- A[0]**B[:,[0]] = [[1,4,2],[1,2,1.414]];
- 因此,同理B[:,[1]]*A[1]=[[4,6,8],[6,9,12]]
- Y2 = [[5,10,10],[7,11,13.414]]
这样理清运算规则后,就可以在明白后续优化中loss怎么计算。