前言:最近在给老板跑实验,遇到一个问题,即如何将类别标签0、1化,如下图所示:
即每类五个样本,属于该类的置为1,不属于置为0.
代码如下:
1.Java版:
public static void main(String[] args) {
int[] t = {1,5,10,19,21,73,31,360,41,49};
int[][] arr = new int[40][10];
for (int i =0; i<t.length;i++){
int num = t[i];
int column = num / 10;
int d =num % 10;
if (d ==0) {
arr[column-1][i] = 1;
}
else{
arr[column][i] = 1;
}
}
2.python版:
import numpy as np
A = [1, 5, 11, 19, 21, 73, 31, 360, 41, 49]
B = np.zeros((40,10))
for i in range(10):
num = A[i]
j = num / 10 #求商
k = num %10 #求余
if k==0: #若余数为0,则索引号退1
B[j-1][i] = 1
else:
B[j][i] = 1
print(B)
3.Matlab版:
A = [1, 5, 11, 19, 21, 73, 31, 360, 41, 49];
B = zeros(40,10);
for i = 1:10
num = A(i);
if mod(num,10)==0
j=fix(num / 10);
else
j=fix(num / 10)+1;
end
fprintf('%i \n',j);
B(j,i) = 1;
end