介绍
主题
下载 csv 文件,计算垂直总数,并将其添加到 csv 文件中。
将使用以下 csv 文件。谢谢你。
我认为这是面向 AI 和机器学习初学者的“虹膜分类”数据。
程序
示例.exs
Mix.install([{:req, "~> 0.3.1"}, {:nimble_csv, "~> 1.2"}])
NimbleCSV.define(MyParser, [])
defmodule Sample do
@url "https://raw.githubusercontent.com/kujirahand/book-mlearn-gyomu/master/src/ch2/iris/iris.csv"
@iris_csv @url |> String.split("/") |> Enum.at(-1)
@output "output.csv"
def run do
[header | rows] =
download_csv(@url)
|> tap(&File.write(@iris_csv, &1))
|> MyParser.parse_string(skip_headers: false)
subtotallings =
rows
|> Enum.reduce([0, 0, 0, 0], fn row, acc ->
row
|> Enum.slice(0, 4)
|> Enum.map(&String.to_float/1)
|> plus(acc)
end)
|> Kernel.++([""])
([header] ++ rows ++ [subtotallings])
|> MyParser.dump_to_iodata()
|> IO.iodata_to_binary()
|> then(&File.write(@output, &1))
end
defp download_csv(url) do
Req.get!(url)
|> Map.get(:body)
end
defp plus(list_a, list_b) do
list_a
|> Enum.zip(list_b)
|> Enum.map(fn {a, b} -> a + b end)
end
end
Sample.run()
我会稍微解释一下。
我会从上到下解释。
- 混合安装/2安装依赖库
-
定义
Sample模块 - 入口点是
run/0函数- 下载 CSV 文件另存为
- 计算垂直总计
- 将垂直计算添加到原始 CSV 的最后一行并保存
-
运行
Sample.run
这就是我正在做的事情。
码头运行
准备sample.exs 并在保存文件的同一目录中执行以下命令。
docker pull hexpm/elixir:1.14.0-erlang-25.1-ubuntu-jammy-20220428
docker run --rm -v $PWD:/app hexpm/elixir:1.14.0-erlang-25.1-ubuntu-jammy-20220428 bash -c "mix local.hex --force && mix local.rebar --force && cd /app && elixir sample.exs"
成功运行后,您应该有两个文件。
- iris.csv
- 输出.csv
后记
我收到了一位读者的来信,他说即使是图像尺寸小的阿尔卑斯山也可以享受。
docker pull hexpm/elixir:1.14.0-rc.1-erlang-24.3.4.6-alpine-3.14.8
docker run --rm -v $PWD:/app hexpm/elixir:1.14.0-rc.1-erlang-24.3.4.6-alpine-3.14.8 sh -c "mix local.hex --force && mix local.rebar --force && cd /app && elixir sample.exs"
谢谢你的来信,@mnishiguchi!
六方/长生不老药
凤凰的使用发布进行部署指南中使用。
我在这里用了那个,以为它会是一个古老的。
综上所述
我喜欢使用 docker run 的 Elixir。
docker run --rm -v $PWD:/app hexpm/elixir:1.14.0-erlang-25.1-ubuntu-jammy-20220428 mix local.hex --force && elixir sample.exs
我只是想写这个。
当我用 Qiita 写作时,它就在我的脑海里,就我而言。
奇塔是惊人的。谢谢你!
@987654337 @
@987654370 @
@987654403 @
@987654436 @
@987654469 @
@987654502 @
@987654535 @
@987654568 @
@987654601 @
@987654634 @
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626881.html