excel学习库

excel表格_excel函数公式大全_execl从入门到精通

julia语言,一个贪婪的语言,体验从helloword到处理excel表

Julia 介绍

Julia 是一种高性能、动态类型、功能丰富的编程语言。它由 MIT 计算机科学与人工智能实验室的 Jeff Bezanson、Stefan Karpinski、Viral Shah 和 Alan Edelman 等人开发。

我们可以从一段截取自开发成员的博客中看到其为什么出现,以及为什么贪婪

我们想要的是一个自由开源的语言,并且它同时拥有C的速度和Ruby的动态性;我们想要一个具有同像性(可以将语言的脚本本身当作数据进行处理)的语言,它有着真正的和lisp一样的宏,但是却像Matlab一样有着显然的,类似于数学表达式的标记;我们想要一个既可以像Python一样作为通用编程语言的工具,又可以像R那样适用于统计分析,能像Perl那样自然地处理字符串,能像Matlab那样给力地处理矩阵运算,它还要能像shell一样作为胶水将各种程序粘合在一起;我们想要一个简单易学的语言,同时它还能让最苛刻的魔法师们(hackers)开心。我们希望它是交互式的,但我们也希望它能被编译。

我们刚刚有提它要和C一样快嘛?!)

来自:https://julialang.org/blog/2012/02/why-we-created-julia-zh_CN/

以下是 Julia 语言的一些特点:

  • 高性能

Julia 的设计目标之一是高性能。它的代码可以比许多其他语言更快地执行,因为它使用了即时编译技术和 Just-In-Time (JIT) 编译器。

  • 动态类型

与许多其他语言不同,Julia 是一种动态类型语言。这意味着变量的类型是在运行时确定的,而不是在编译时确定的。这样可以提供更大的灵活性和更少的代码量。

  • 多重派发

Julia 采用多重派发(Multiple Dispatch)的方式处理函数调用,这意味着可以根据参数的类型和数量决定使用哪个函数版本。这使得编写函数更加直观和灵活,并可以提供更高的性能。

  • 内置类型

Julia 内置了许多常见的数据类型,如数组、元组和字典。这些类型在 Julia 中被高度优化,可以在处理大量数据时提供高效的性能。

  • 可扩展性

Julia 的设计允许用户轻松地编写和使用自己的模块和包。这使得 Julia 在科学计算和数据分析等领域非常受欢迎。

看起来那么牛,让我们简单体验一下:

快速入门:如何使用julia编写一个helloword

安装部分,直接在官网下安装包,安装即可。 Julia 官网: https://julialang.org/

用记事本或编辑器中输入以下代码:

println("Hello World!")

将代码保存为一个.jl文件(例如,hello_world.jl)。

命令行中执行julia,打开Julia REPL(Read-Eval-Print Loop)。

在Julia REPL中,使用cd命令切换到保存Hello World代码的目录。

julia> cd("path/to/directory")

输入以下命令来运行Hello World程序:

julia> include("hello_world.jl")

程序将输出 "Hello World!"。

Julia擅长领域

Julia语言擅长以下领域:

  1. 数值计算

  2. 数据科学

  3. 机器学习

  4. 高性能计算

示例代码

以下是Julia语言在这些领域中的示例代码:

数值计算

  • 矩阵计算

using LinearAlgebraA = [1 2 3; 4 5 6; 7 8 9]B = [9 8 7; 6 5 4; 3 2 1]C = A * B
  • 积分计算

安装 QuadGK 库,在Julia命令行中执行:

import Pkg; Pkg.add("QuadGK")

进行积分计算:

using QuadGKf(x) = x^2result, error = quadgk(f, 0, 1)

数据科学

  • 数据处理

安装 DataFrames 库,在Julia命令行中执行:

import Pkg; Pkg.add("DataFrames")

进行数据处理:

using DataFramesdf = DataFrame(a = [1, 2, 3], b = ["a", "b", "c"])select!(df, Not(:a)) # 删除列a
  • 数据可视化

安装 Plots 库,在Julia命令行中执行:

import Pkg; Pkg.add("Plots")

进行数据可视化:

using Plotsx = 1:10y = rand(10)plot(x, y, seriestype = :scatter)
  • 机器学习: 线性回归

安装 GLM 库,在Julia命令行中执行:

import Pkg; Pkg.add("GLM")

线性回归计算:

using GLM, RandomRandom.seed!(123)x = rand(100)y = 3x .+ 2 .+ randn(100)df = DataFrame(x=x, y=y)model = lm(@formula(y ~ x), df)coef(model)

高性能计算: 多线程计算

using Base.Threadsnthreads() # 查看线程数function work()    tid = threadid()    println("Start working on thread $tid")    sleep(rand())    println("Finish working on thread $tid")end@threads for i in 1:10    work()end

上面我们介绍了它的主要应用场景,接下来我们通过一个实际案例来看一下它在处理excel数据表的方法

如何用Julia处理excel数据表?

要在Julia中处理Excel数据表,可以使用第三方包XLSX.jl。以下是使用XLSX.jl进行Excel数据表处理的示例代码:

安装XLSX.jl包

using PkgPkg.add("XLSX")

加载XLSX.jl包

using XLSX

读取Excel数据表

filepath = "data.xlsx" # Excel数据表的路径sheetname = "Sheet1" # 工作表的名称# 读取Excel数据表中的第一个工作表data = XLSX.readdata(filepath, sheetname)

处理Excel数据表

# 遍历Excel数据表中的行for row in data    # 访问每个单元格的值    println(row[1], ", ", row[2], ", ", row[3])end# 提取Excel数据表中的列column1 = data[:, 1] # 提取第一列column2 = data[:, 2] # 提取第二列column3 = data[:, 3] # 提取第三列# 在Excel数据表中查找行row_index = findfirst(data[:, 1] .== "Value1")if row_index != nothing    row = data[row_index, :]end# 在Excel数据表中添加新行new_row = ["Value4", 4, "Four"]push!(data, new_row)# 在Excel数据表中更新单元格的值data[2, 2] = "NewValue"

将Excel数据表保存到文件

XLSX.writetable("new_data.xlsx", sheetname, data)

请注意,XLSX.jl包还提供了许多其他的读写Excel数据表的方法。详细信息请参见XLSX.jl的文档(https://felipenoris.github.io/XLSX.jl/stable/)

处理csv表,也是类似的

首先输入using Pkg; Pkg.add("CSV")来安装CSV.jl包

  • 读取CSV文件

可以使用以下代码读取该文件并将其转换为DataFrame:

using CSV, DataFramesdf = CSV.read("data.csv", DataFrame)

该代码将读取CSV文件并将其转换为DataFrame类型。这里需要导入DataFrames.jl以使用DataFrame类型

  • 写入CSV文件

可以使用以下代码将DataFrame写入CSV文件:

CSV.write("data_out.csv", df)

该代码将DataFrame写入名为data_out.csv的CSV文件中。

备注

Julia 官网: https://julialang.org/

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接