PyCall机制下Julia的机器学习


#1

在使用Julia做机器学习时,发现一个很重要的问题,就是python的numpy.c_函数不能用,python中的numpy.c_[]
而在Julia中不能这样调用,会报错,以下是一些尝试:


我目前测试了很多Python的函数,均在Julia中可以调用,所有Julia在机器学习的路上可以走的很远


#2

另外在此分享下PyObject的经验,大部分情况下,fo(PyObject)都可以在Julia重新调用,不过需要注意Python的数组下标以0开始,而Julia是从1开始,而且Python对于数组的索引少了一维,而Julia是引用所有的,比如1:2,在Julia是2维的但是在Python是一维的,PyCall方式同样可以用在sklearn函数库,所以称此帖为机器学习开篇


#3

另外补充,numpy.c_[]函数的功能可以简单变为Julia的 “[a b]” (a,b均为1维列向量),但是在此想问一下如何在Julia直接调用numpy.c_[]函数?


#4

这里由于numpy.c_并不是一个函数调用,并不能在Julia中直接用以下形式直接调用:

  • numpy.c_[[1 2 3], [2 3 4]]
  • numpy.c_([1 2 3], [2 3 4])
  • numpy[:c_]([1 2 3], [2 3 4])

关于numpy.c_的解释,可以看

那么怎么调用呢?

有两种方法:

julia> np.c_[:__getitem__](([1 2 3], [2 3 4]))1×6 Array{Int64,2}:
 1  2  3  2  3  4

或者,直接调用numpy中对应的函数

julia> np.column_stack(([1 2 3], [2 3 4]))
1×6 Array{Int64,2}:
 1  2  3  2  3  4