我想A按第2列和第3列对我的矩阵进行排序.
A = round(randn(100,4))
Run Code Online (Sandbox Code Playgroud)
也许是这样的:
sort(A,(0,2:3))
100x4 Array{Float64,2}:
0.0 -2.0 -2.0 -1.0
-1.0 -2.0 -1.0 1.0
1.0 -2.0 -1.0 2.0
-1.0 -2.0 0.0 0.0
-1.0 -2.0 0.0 -1.0
-0.0 -2.0 0.0 -1.0
1.0 -2.0 0.0 0.0
1.0 -2.0 1.0 -1.0
-0.0 -2.0 2.0 -1.0
-0.0 -1.0 -2.0 1.0
?
-0.0 1.0 0.0 1.0
1.0 1.0 1.0 1.0
0.0 1.0 1.0 -1.0
-0.0 1.0 2.0 0.0
-0.0 2.0 -1.0 0.0
-2.0 2.0 -1.0 1.0
2.0 2.0 -0.0 -1.0
-1.0 …Run Code Online (Sandbox Code Playgroud) 我目前正在使用python,pandas并想知道是否有办法将数据从熊猫输出到julia Dataframes,反之亦然.(我想你可以从Julia调用python,Pycall但我不确定它是否适用于数据帧)有没有办法从python调用Julia并让它接受panda数据帧?(不保存为像csv这样的其他文件格式)
除了非常大的数据集和运行具有许多循环(如神经网络)的东西之外,何时使用Julia Dataframes而不是Pandas是否有利?
该朱莉娅风格指南说以下内容:
不要使用不必要的静态参数.功能签名:
Run Code Online (Sandbox Code Playgroud)foo{T<:Real}(x::T) = ...应该写成:
Run Code Online (Sandbox Code Playgroud)foo(x::Real) = ...
我希望也适用于数组参数.但是,如果我写下面的代码:
ret1(x::Real) = x
ret2(x::Array{Float64,2}) = x
ret3(x::Array{Real,2}) = x
ret1(1.0)
ret2(rand(2,2))
ret3(rand(2,2))
Run Code Online (Sandbox Code Playgroud)
然后我得到以下控制台输出(使用Julia 0.2.1):
MethodError(ret3,(
2x2 Array{Float64,2}:
0.841121 0.322133
0.469432 0.495438,))
Run Code Online (Sandbox Code Playgroud)
那么为什么Julia会为具有抽象类型参数的数组抛出错误,而对于具有抽象类型的变量则不会?
Julia本身不支持多次返回.但是,Julia通过返回值元组来执行类似的功能,然后可以将其分配给变量元组.例如:
function mult_return()
(3,2)
end
Run Code Online (Sandbox Code Playgroud)
返回元组(3,2).然后我们可以将这两个返回值分配给不同的变量,如下所示:
(a,b) = mult_return()(或a,b = mult_return()因为括号不是必需的.)
我的问题是:有没有办法忽略其中一个返回值?例如,在Matlab语法中,用户可以编写:
[~, b] = mult_return()
Run Code Online (Sandbox Code Playgroud)
这样只将第二个值赋给变量.
在Julia中解决这个问题的正确方法是什么?
我正在尝试创建一个julia语言包并在项目中使用它.
现在我只有一个jl文件,我不知道如何用它创建一个包.
我已阅读此链接,但我仍然不知道该怎么做.我想创建一个带有jl文件的本地包,并使用以下代码在我自己的本地项目中使用它:using MyPackage.
有人能帮助我吗?
在这个页面上,它说方法push!()并且append!()非常有效.
我的问题是它们的效率如何?
也就是说,
如果有人知道最终数组的大小,那么预先分配数组还是使用append!()/ 增量增长它push!()会更快吗?
现在考虑一个人不知道最终数组大小的情况.例如,将多个数组合并为一个大数组(称之为A).
实现这一目标的两种方法:
append!()-ing每个数组A,其大小尚未预先分配.A.然后预分配A并复制每个数组的内容.在这种情况下哪一个会更有效率?
有没有之间的差异Array和Vector?
typeof(Array([1,2,3]))
Vector{Int64}
typeof(Vector([1,2,3]))
Vector{Int64}
Run Code Online (Sandbox Code Playgroud)
两者似乎都创造了相同的东西,但它们并不相同:
Array == Vector
false
Array === Vector
false
Run Code Online (Sandbox Code Playgroud)
那么,实际上有什么区别呢?
我寻找的时候使用一些指导missing,nothing,undef,和NaN在朱莉娅。
例如,对于预先分配数组或从try/返回,所有这些似乎都是合理的选择catch。
假设我有两个向量x = [1, 2]和y = [3, 4]。如何最好地组合它们以获得m = [1 2; 3 4]Julia 编程语言中的矩阵?预先感谢您的支持。
我使用 Python/Numpy 中的函数来解决组合博弈论中的问题。
\nimport numpy as np\nfrom time import time\n\ndef problem(c):\n start = time()\n N = np.array([0, 0])\n U = np.arange(c)\n \n for _ in U:\n bits = np.bitwise_xor(N[:-1], N[-2::-1])\n N = np.append(N, np.setdiff1d(U, bits).min())\n\n return len(*np.where(N==0)), time()-start \n\nproblem(10000)\nRun Code Online (Sandbox Code Playgroud)\n然后我用 Julia 编写它,因为我认为由于 Julia 使用即时编译,它会更快。
\nfunction problem(c)\n N = [0]\n U = Vector(0:c)\n \n for _ in U\n elems = N[1:length(N)-1]\n bits = elems .\xe2\x8a\xbb reverse(elems)\n push!(N, minimum(setdiff(U, bits))) \n end\n \n return sum(N .== 0)\nend\n\n@time problem(10000)\n …Run Code Online (Sandbox Code Playgroud)