Class: AprendizajeMaquina::Cargar

Inherits:
Object
  • Object
show all
Defined in:
lib/aprendizaje_maquina/cargar.rb

Instance Method Summary collapse

Constructor Details

#initialize(path_file) ⇒ Cargar

Returns a new instance of Cargar.


6
7
8
9
10
# File 'lib/aprendizaje_maquina/cargar.rb', line 6

def initialize(path_file)
 @path_file = path_file
 @csv_data = CSV.read(@path_file)
 @largo_colum = @csv_data[0].length
end

Instance Method Details

#to_matrix(columnas = nil) ⇒ Object


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/aprendizaje_maquina/cargar.rb', line 12

def to_matrix(columnas = nil)
  if columnas == nil
    array = @csv_data.map{ |e| e.map{ |o| o.include?(".") ? o.to_f : o.to_i } }
	  matrix = Matrix.rows(array,copy=true)
	  matrix
  elsif columnas.is_a?(Range)
    if columnas.last >= @largo_colum
	    raise ArgumentError, "Number of columns don't exist"
	  else
	    array = @csv_data.map{ |e| e[columnas].map{ |i| i.include?(".") ? i.to_f : i.to_i} }
	    matrix = Matrix.rows(array,copy=true)
	    matrix
	  end
  elsif columnas.is_a?(Integer)
	  if columnas >= @largo_colum
	    raise ArgumentError, "Number of columns don't exist"
	  else
	    array = @csv_data.map { |e| e[columnas].include?(".") ? e[columnas].to_f : e[columnas].to_i }
	    matrix = Matrix[array].transpose
	    matrix
	  end
  else
	  raise ArgumentError, "Must be nil, range or integer"
  end
end

#to_vector(columna) ⇒ Object


38
39
40
41
42
43
44
45
46
# File 'lib/aprendizaje_maquina/cargar.rb', line 38

def to_vector(columna)
  if columna >= @largo_colum
   raise ArgumentError, "Column don't exist"
  else
   array = @csv_data.map { |e| e[columna].include?(".") ? e[columna].to_f : e[columna].to_i }
   vector = Vector.elements(array,copy = true)
   vector
  end
end