我想知道为什么对Float64值进行操作比对 进行操作更快Float16:
julia> rnd64 = rand(Float64, 1000);\n\njulia> rnd16 = rand(Float16, 1000);\n\njulia> @benchmark rnd64.^2\nBenchmarkTools.Trial: 10000 samples with 10 evaluations.\n Range (min \xe2\x80\xa6 max): 1.800 \xce\xbcs \xe2\x80\xa6 662.140 \xce\xbcs \xe2\x94\x8a GC (min \xe2\x80\xa6 max): 0.00% \xe2\x80\xa6 99.37%\n Time (median): 2.180 \xce\xbcs \xe2\x94\x8a GC (median): 0.00%\n Time (mean \xc2\xb1 \xcf\x83): 3.457 \xce\xbcs \xc2\xb1 13.176 \xce\xbcs \xe2\x94\x8a GC (mean \xc2\xb1 \xcf\x83): 12.34% \xc2\xb1 3.89%\n\n \xe2\x96\x81\xe2\x96\x88\xe2\x96\x88\xe2\x96\x84\xe2\x96\x82\xe2\x96\x82\xe2\x96\x86\xe2\x96\x86\xe2\x96\x84\xe2\x96\x82\xe2\x96\x81 \xe2\x96\x82\xe2\x96\x86\xe2\x96\x84\xe2\x96\x81 \xe2\x96\x82\xe2\x96\x82\xe2\x96\x82\xe2\x96\x81 \xe2\x96\x82\n \xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x87\xe2\x96\x87\xe2\x96\x86\xe2\x96\x86\xe2\x96\x87\xe2\x96\x86\xe2\x96\x85\xe2\x96\x87\xe2\x96\x88\xe2\x96\x88\xe2\x96\x86\xe2\x96\x86\xe2\x96\x85\xe2\x96\x85\xe2\x96\x86\xe2\x96\x84\xe2\x96\x84\xe2\x96\x81\xe2\x96\x81\xe2\x96\x83\xe2\x96\x83\xe2\x96\x81\xe2\x96\x81\xe2\x96\x84\xe2\x96\x81\xe2\x96\x83\xe2\x96\x84\xe2\x96\x81\xe2\x96\x83\xe2\x96\x81\xe2\x96\x84\xe2\x96\x83\xe2\x96\x81\xe2\x96\x81\xe2\x96\x86\xe2\x96\x87\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x87 \xe2\x96\x88\n 1.8 \xce\xbcs Histogram: log(frequency) by time 10.6 \xce\xbcs <\n\n …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过Windows 10 中的“Anaconda Prompt” usnig文件创建新的 conda 环境。
以下是我完成的步骤:yml
1.使用cd命令我将目录更改为我的文件所在的目录yml。(假设我的 yml 文件位于c:/Users/<USER NAME>/.jupyter)
2.然后我使用conda env create -f Python 310.yml命令创建新的 conda env。
我得到的是:
SpecNotFound:名称无效,请尝试格式:用户/包
现在我不知道如何解决这个问题,也不知道这个错误的含义是什么。
我的Python 310.yml文件包含这些内容:
当我尝试在VSCode中以 pdf 格式导出 Jupyter Notebook 时,如下所示:

然后我得到这个错误:
导出失败。请检查“Jupyter”输出面板以获取更多详细信息。
jupyter 输出面板显示:
[错误] 如果您尚未安装 xelatex (TeX),则需要先安装才能导出为 PDF。有关更多说明,请参阅https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex。为了避免安装 xelatex (TeX),您可能需要尝试导出为 HTML 并使用浏览器的“打印为 PDF”功能。
所以我尝试安装 MikTeX并更新所需的包,但仍然无法通过 VSCode 以 PDF 格式导出 Jupyter Notebooks!
我该如何解决这个问题?
请注意,我知道我可以通过将其转换为 HTML,然后ctrl+p尝试将其另存为 pdf 来做到这一点!但我想直接将其转换为pdf!
我已经知道如何将 Julia 包导入到 Python 中。
但是,现在我使用以下命令创建了自己的简单 Julia 包:
using Pkg;Pkg.generate("MyPack");Pkg.activate("MyPack");Pkg.add("StatsBase")
其中文件MyPack/src/MyPack.jl具有以下内容:
module MyPack
using StatsBase
function f1(x, y)
return 3x + y
end
g(x) = StatsBase.std(x)
export f1
end
Run Code Online (Sandbox Code Playgroud)
现在我想通过juliacall调用f1和g函数在 Python 中加载这个 Julia 包。我已经pip3 install juliacall从命令行运行了。如何从 Python 调用上述函数?
我想创建一个Matrix具有零和一值的随机数。有了这个假设,就会有更多的 0 而不是 1!所以我想应该有类似加权伯努利分布的东西每次都在 0 或 1 之间进行选择(选择 0 的概率更大)。我不想将其限制为 nxn 矩阵!我可以尝试以完全不标准的方式,如下所示:
julia> let mat = Matrix{Int64}(undef, 3, 5)\n zero_or_one(shift) = rand()+shift>0.5 ? 0 : 1\n foreach(x->mat[x]=zero_or_one(0.3), eachindex(mat))\n end\n\njulia> mat\n3\xc3\x975 Matrix{Int64}:\n 1 1 1 0 1\n 0 1 1 1 1\n 0 1 1 0 1\nRun Code Online (Sandbox Code Playgroud)\n请注意,这并不能完成任务。因为正如您所看到的,我在结果中得到了更多的 1 而不是零。\n有没有更优化或至少有创意的方法?或者有什么模块可以做到这一点?
\n更新:
\n无论我是否更改 的值,此代码的结果似乎都不会改变shift。
append!在 Julia 中,您可以使用或将元素永久附加到现有向量push!。例如:
julia> vec = [1,2,3]
3-element Vector{Int64}:
1
2
3
julia> push!(vec, 4,5)
5-element Vector{Int64}:
1
2
3
4
5
# or
julia> append!(vec, 4,5)
7-element Vector{Int64}:
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
append!但是,和 之间有什么区别push!?根据官方文档,建议:
“使用push!将单个项目添加到一个集合中,而这些项目本身并不在另一个集合中。前面示例的结果相当于push!([1,2,3],4,5,6)。”
这就是这两个函数之间的主要区别!但是,在上面的示例中,我使用 . 将各个元素附加到现有向量中append!。那么为什么他们建议push!在这些情况下使用呢?
在 GitHub Desktop 中,我可以在提交的描述字段中写入不确定的行数,并且该字段与提交消息不同:
我知道我可以使用以下命令在 git bash 中执行相同的操作:
git commit -m "Title" -m "Description ..........";
Run Code Online (Sandbox Code Playgroud)
现在我想知道我是否可以在源代码管理 VSCode 中执行相同的操作。
源代码管理选项卡中有一个字段,如下所示,但我不知道它是提交的标题(提交消息)还是描述:

有没有办法检查 Julia 的版本正在运行代码?当您的计算机上已经有超过 1 个 Julia 时,这一点很重要。
考虑这样一种情况,我首先使用eltypeofAny增量创建一个 Vector;之后,我想缩小它的元素类型。我怎样才能做到这一点?
julia> vec = Any[1, 2, 3.]
3-element Vector{Any}:
1
2
3.0
Run Code Online (Sandbox Code Playgroud)
I can use something like convert(Vector{Real}, vec). But in this case, I'm specifying the type manually while I want Julia to decide the best suitable eltype for it.
人们可以通过该包来使用 Julia 的内置模块和函数juliacall。例如:
>>> from juliacall import Main as jl
>>> import numpy as np
# Create a 2*2 random matrix
>>> arr = jl.rand(2,2)
>>> arr
<jl [0.28133223988783074 0.22498491616860727; 0.008312971104033062 0.12927167014532326]>
# Check whether Numpy can recognize the shape of the array or not
>>> np.array(arr).shape
(2, 2)
>>> type(np.array(arr))
<class 'numpy.ndarray'>
Run Code Online (Sandbox Code Playgroud)
然后我很好奇是否可以将已安装的 julia 包导入到 Python 中?例如,假设有人想要导入Flux.jl到 Python 中。有办法实现这一点吗?