我有CSV文件作为输入:用文字int和浮动列到ndarray
6,148,72,35,0,33.6,0.627,50,1
1,85,66,29,0,26.6,0.351,31,0
8,183,64,0,0,23.3,0.672,32,1
1,89,66,23,94,28.1,0.167,21,0
它有int和float的组合。 当我试图导入文件使用“numpy.loadtext”我得到的是每个列作为浮动2d数组。
r = np.loadtxt(open("text.csv", "rb"), delimiter=",", skiprows=0)
和我收到输出像:
array([[ 6. , 148. , 72. , ..., 0.627, 50. , 1. ],
[ 1. , 85. , 66. , ..., 0.351, 31. , 0. ],
[ 8. , 183. , 64. , ..., 0.672, 32. , 1. ],
...,
[ 5. , 121. , 72. , ..., 0.245, 30. , 0. ],
[ 1. , 126. , 60. , ..., 0.349, 47. , 1. ],
[ 1. , 93. , 70. , ..., 0.315, 23. , 0. ]])
这是完美具有与每个行2D阵列中的列表,而不是元组。 但在查看数据类型时,每个列都被视为不正确的float。
什么,我问的是有没有什么办法可以做输出,如:
所需的输出
array([[ 6 , 148 , 72 , ..., 0.627, 50 , 1 ],
[ 1 , 85 , 66 , ..., 0.351, 31 , 0 ],
[ 8 , 183 , 64 , ..., 0.672, 32 , 1 ],
...,
[ 5 , 121 , 72 , ..., 0.245, 30 , 0 ],
[ 1 , 126 , 60 , ..., 0.349, 47 , 1 ],
[ 1 , 93 , 70 , ..., 0.315, 23 , 0 ]])
我没试过这种方法:
r = np.loadtxt(open("F:/idm/compressed/ANN-CI1/Diabetes.csv", "rb"), delimiter=",", skiprows=0, dtype=[('f0',int),('f1',int),('f2',int),('f3',int),('f4',int),('f5',float),('f6',float),('f7',int),('f8',int)])
输出
array([(6, 148, 72, 35, 0, 33.6, 0.627, 50, 1),
(1, 85, 66, 29, 0, 26.6, 0.351, 31, 0),
(8, 183, 64, 0, 0, 23.3, 0.672, 32, 1),
(1, 89, 66, 23, 94, 28.1, 0.167, 21, 0),
...,
(1, 126, 60, 0, 0, 30.1, 0.349, 47, 1),
(1, 93, 70, 31, 0, 30.4, 0.315, 23, 0)],
dtype=[('f0', '<i4'), ('f1', '<i4'), ('f2', '<i4'), ('f3', '<i4'), ('f4','<i4'), ('f5', '<f8'), ('f6', '<f8'), ('f7', '<i4'), ('f8', '<i4')])
在这里你可以看到dtype解决问题,但现在它不是正确的形式,我需要,
[[col1,col2,...,coln],]而不是[(col1,col2,..., coln),] ndarray
谢谢
------------------编辑----------------- -------
问题,为什么我问的是,我将这个二维数组作为输入到我的二进制分类网络中,当所有值都是int且形式为[[]]时,它收敛于值,但是在目前情况下,它的混合输出是0.或1.错误学习非常高。 参观https://github.com/naitikshukla/MachineLearning/blob/master/neural/demo_ann.py! 为完整的代码
在输入空间,如果我从标线69-88我的电流输入和取消标记,然后输出将是0和1。
,所以我想将其更改为正确的数据类型,看看是否有将解决我的问题。
下面有非常好的解释,这是不可能的,我会看到任何解决方法,看看我是否可以使用当前输入的火车和预测。
为什么你需要这种形式?我认为'(...)'是你的对象数组的结果。使用这种格式更改下一个命令可能会更容易。 – Nyps
我想用Backpropagation来构建单层神经网络的代码,所以这是假设为我开始的一步,下一步我正在做什么显然是拆分,然后调用火车和预测, 'train,test = train_test_split( scale_inp,test_size = 0.25)\t \t#将数据分割为测试和训练,然后是train_X = np.array(train [:,0:8])。 如果我能够做到这些,我想在火车点产品会再次为我造成问题。 –
在网络案例中,整数与浮点数有什么关系?在编辑中添加很多附加内容而不是评论。在那里阅读比较容易。对于培训/测试拆分,是按列还是按行?整数v是否浮动很重要? – hpaulj