Skip to content
This repository was archived by the owner on Jun 21, 2025. It is now read-only.

Commit b4c9ac1

Browse files
Revisao julia basics pt (#7)
* Create julia_basics_pt.md * Apply suggestions from code review Co-authored-by: Jose Storopoli <[email protected]>
1 parent f4dae71 commit b4c9ac1

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

contents/julia_basics_pt.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Julia Basics {#sec:julia_basics}
1+
# Básico de Julia {#sec:julia_basics}
22

33
> **_OBSERVAÇÃO:_**
44
> Neste capítulo, descreveremos o básico de Julia como linguagem de programação.
55
> Por favor, note que isso não é *estritamente necessário* para você usar Julia como uma ferramenta de manipulação e visualização de dados.
66
> Ter um conhecimento básico de Julia definitivamente o tornará mais *eficaz* e *eficiente* no uso de Julia.
7-
> No entanto, se você preferir começar imediatamente, pode pular para @sec:dataframes e aprenda sobre dados tabulares em `DataFrames.jl`.
7+
> No entanto, se você preferir começar imediatamente, pode pular para @sec:dataframes e aprender sobre dados tabulares em `DataFrames.jl`.
88
99
Aqui, vamos trazer uma visão mais geral sobre a linguagem Julia, *não* algo aprofundado.
1010
Se você já está familiarizado e confortável com outras linguagens de programação, nós encorajamos você a ler a documentação de Julia (<https://docs.julialang.org/>).
@@ -40,14 +40,14 @@ Julia tem diversos tipos de variáveis, mas, em ciência de dados, usamos princi
4040

4141
* Números inteiros: `Int64`
4242
* Números reais: `Float64`
43-
* Booleana: `Bool`
43+
* Booleanas: `Bool`
4444
* Strings: `String`
4545

4646
Inteiros e números reais são armazenados usando 64 bits por padrão, é por isso que eles têm o sufixo `64` no nome do tipo.
47-
Se você precisar de mais ou menos precisão, existem os tipos `Int8` ou `Int128`, por exemplo, nos quais um maior número significa uma maior significa mais precisão.
47+
Se você precisar de mais ou menos precisão, existem os tipos `Int8` ou `Int128`, por exemplo, nos quais um maior número significa uma maior precisão.
4848
Na maioria das vezes, isso não será um problema, então você pode simplesmente seguir os padrões.
4949

50-
Criamos novas variáveis escrevendo o nome da variável à esquerda e seu valor à direita, e no meio usamos o `=` operador de atribuição.
50+
Criamos novas variáveis escrevendo o nome da variável à esquerda e seu valor à direita, e no meio usamos o operador de atribuição `=`.
5151
Por exemplo:
5252

5353
```jl
@@ -149,10 +149,10 @@ s = """
149149
sco(s)
150150
```
151151

152-
Algo importante de se notar com os `struct` é que não podemos alterar seus valores, uma vez que são instanciados.
152+
Algo importante de se notar com os `struct` é que não podemos alterar seus valores uma vez que são instanciados.
153153
Podemos resolver isso com `mutable struct`.
154154
Além disso, observe que objetos mutáveis geralmente serão mais lentos e mais propensos a erros.
155-
Sempre que possível, faça que tudo seja *imutável*.
155+
Sempre que possível, faça com que tudo seja *imutável*.
156156
Vamos criar uma `mutable struct`.
157157

158158
```jl
@@ -210,12 +210,12 @@ Com relação à comparação numérica, Julia tem três tipos principais de com
210210
1. **Igualdade**: ou algo é *igual* ou *não igual* em relação a outro
211211
* == "igual"
212212
* != ou ≠ "não igual"
213-
1. **Menos que**: ou algo é *menos que* ou *menos que ou igual a*
214-
* < "menos que"
215-
* <= ou ≤ "menos que ou igual a"
216-
1. **Maior que**: ou algo é *maior que* ou *maior que ou igual a*
213+
1. **Menor que**: ou algo é *menor que* ou *menor ou igual a*
214+
* < "menor que"
215+
* <= ou ≤ "menor ou igual a"
216+
1. **Maior que**: ou algo é *maior que* ou *maior ou igual a*
217217
* \> "maior que"
218-
* \>= ou ≥ "maior que ou igual a"
218+
* \>= ou ≥ "maior ou igual a"
219219

220220
Aqui temos alguns exemplos:
221221

@@ -443,7 +443,7 @@ s = """
443443
scob(s)
444444
```
445445

446-
#### Funções anônimas {#sec:function_anonymous}
446+
#### Funções Anônimas {#sec:function_anonymous}
447447

448448
Muitas vezes não nos importamos com o nome da função e queremos criar uma rapidamente.
449449
O que precisamos é das **funções anônimas**.
@@ -566,7 +566,7 @@ Aqui, precisamos avisar Julia que o `n` dentro do laço `while` está no escopo
566566

567567
Por fim, também usamos o operador `+=` que é uma boa abreviatura para `n = n + 1`.
568568

569-
## Estruturas nativas de dados {#sec:data_structures}
569+
## Estruturas Nativas de Dados {#sec:data_structures}
570570

571571
Julia possui diversas estruturas de dados nativas.
572572
Elas são abstrações de dados que representam alguma forma de dado estruturado.
@@ -898,7 +898,7 @@ Ou ainda, mais do que dois argumentos:
898898
scob("map((x, y, z) -> x^y + z, 2, 3, 1)")
899899
```
900900

901-
### Tupla nomeada {#sec:namedtuple}
901+
### Tupla Nomeada {#sec:namedtuple}
902902

903903
Às vezes, você deseja nomear os valores contidos nas tuplas.
904904
É aí que entram as **tuplas nomeadas**.
@@ -963,7 +963,7 @@ sco("typeof(1.0:10.0)")
963963
```
964964

965965
Às vezes, queremos mudar o comportamento padrão do incremento do intervalo.
966-
Podemos fazer isso adicionando um incremento específico por meio da sintaxe do range `start:step:stop`.
966+
Podemos fazer isso adicionando um incremento específico por meio da sintaxe da range `start:step:stop`.
967967
Por exemplo, suponha que queremos um range de `Float64` que vá de 0 a 1 com passos do tamanho de 0.2:
968968

969969
```jl
@@ -982,19 +982,19 @@ Já que estamos falando de arrays, vamos conversar sobre eles.
982982
### Array {#sec:array}
983983

984984
Na sua forma mais básica, **arrays** contém múltiplos objetos.
985-
Por exemplo, eles podem armazenar múltiplos números em uma dimensão:
985+
Por exemplo, elas podem armazenar múltiplos números em uma dimensão:
986986

987987
```jl
988988
sco("myarray = [1, 2, 3]")
989989
```
990990

991-
Na maioria das vezes você quer ter **arrays de tipo único para evitar problemas de performance**, mas observe que eles também podem conter objetos de diferentes tipos:
991+
Na maioria das vezes você quer ter **arrays de tipo único para evitar problemas de performance**, mas observe que elas também podem conter objetos de diferentes tipos:
992992

993993
```jl
994994
sco("myarray = [\"text\", 1, :symbol]"; process=output_block)
995995
```
996996

997-
Eles são o "pão com manteiga" da ciência de dados, porque as arrays são o que está por trás da maior parte do fluxo de trabalho em **manipulação de dados** e **visualização de dados**.
997+
Elas são o "pão com manteiga" da ciência de dados, porque as arrays são o que está por trás da maior parte do fluxo de trabalho em **manipulação de dados** e **visualização de dados**.
998998

999999
Portanto, **arrays são uma estrutura de dados essencial**.
10001000

@@ -1006,7 +1006,7 @@ Existem vários, mas vamos nos concentrar nos dois mais usados em ciência de da
10061006
* `Vector{T}`: array **unidimensional**. Escrita alternativa para `Array{T, 1}`.
10071007
* `Matrix{T}`: array**bidimensional**. Escrita alternativa para `Array{T, 2}`.
10081008

1009-
Observe aqui que `T` é o tipo do array subjacente.
1009+
Observe aqui que `T` é o tipo da array subjacente.
10101010
Então, por exemplo, `Vector{Int64}` é um `Vector` no qual todos os elementos são `Int64`, e `Matrix{AbstractFloat}` é uma `Matrix` em que todos os elementos são subtipos de `AbstractFloat`.
10111011

10121012
Na maioria das vezes, especialmente ao lidar com dados tabulares, estamos usando arrays unidimensionais ou bidimensionais.
@@ -1043,7 +1043,7 @@ s = """
10431043
sco(s)
10441044
```
10451045

1046-
Nós também temos algumas **açúcares sintáticos** para os elementos mais comuns na construção de arrays:
1046+
Nós também temos algumas **apelidos sintáticos** para os elementos mais comuns na construção de arrays:
10471047

10481048
* `zeros` para todos os elementos inicializados em zero.
10491049
Observe que o tipo padrão é `Float64` que pode ser alterado se necessário:
@@ -1186,7 +1186,7 @@ sco(s)
11861186
```
11871187

11881188
Finalmente, também podemos criar arrays com **funções de concatenação**.
1189-
Concatenação é um termo padrão em programação e significa "para acorrentar juntos".
1189+
Concatenação é um termo padrão em programação e significa "acorrentar juntos".
11901190
Por exemplo, podemos concatenar strings com "aa" e "bb" para conseguir "aabb":
11911191

11921192
```jl
@@ -1382,7 +1382,7 @@ s = """
13821382
sco(s)
13831383
```
13841384

1385-
Você pode convertê-lo de volta em um vetor especificando uma tupla com apenas uma dimensão como o segundo argumento:
1385+
Você pode convertê-la de volta em um vetor especificando uma tupla com apenas uma dimensão como o segundo argumento:
13861386

13871387
```jl
13881388
sco("reshape(tree_two_matrix, (6, ))")
@@ -1428,7 +1428,7 @@ Além disso, `map` funciona com fatiamento:
14281428
sco("map(x -> x + 100, my_example_matrix[:, 3])")
14291429
```
14301430

1431-
Finalmente, às vezes, e especialmente ao lidar com dados tabulares, queremos aplicar uma **função sobre todos os elementos em uma dimensão específica de um array**.
1431+
Finalmente, às vezes, e especialmente ao lidar com dados tabulares, queremos aplicar uma **função sobre todos os elementos em uma dimensão específica de uma array**.
14321432
Isso pode ser feito com a função `mapslices`.
14331433
Parecido com `map`, o primeiro argumento é a função e o segundo argumento é a array.
14341434
A única mudança é que precisamos especificar o argumento `dims` para sinalizar em qual dimensão queremos transformar os elementos.
@@ -1558,13 +1558,13 @@ indexes
15581558

15591559
Muitas vezes é melhor usar funções especializadas para esses loops:
15601560

1561-
* `eachcol`: itera sobre um array coluna a coluna
1561+
* `eachcol`: itera sobre uma array coluna a coluna
15621562

15631563
```jl
15641564
sco("first(eachcol(column_major))")
15651565
```
15661566

1567-
* `eachrow`: itera sobre um array linha a linha
1567+
* `eachrow`: itera sobre uma array linha a linha
15681568

15691569
```jl
15701570
sco("first(eachrow(column_major))")
@@ -1773,7 +1773,7 @@ Também funciona para ranges:
17731773
scob("add_elements(1:3...)")
17741774
```
17751775

1776-
## Sistema de arquivo {#sec:filesystem}
1776+
## Sistema de Arquivos {#sec:filesystem}
17771777

17781778
Em ciência de dados, a maioria dos projetos é realizada em um esforço colaborativo.
17791779
Compartilhamos código, dados, tabelas, figuras e assim por diante.
@@ -1855,7 +1855,7 @@ Para começar, vamos carregar o módulo `Dates`:
18551855
using Dates
18561856
```
18571857

1858-
#### Tipo `Date` e `DateTime` {#sec:dates_types}
1858+
#### Tipos `Date` e `DateTime` {#sec:dates_types}
18591859

18601860
O módulo de biblioteca padrão `Dates` tem **dois tipos para trabalhar com datas**:
18611861

@@ -1954,7 +1954,7 @@ sco("""DateTime("1987-09-13T21:21:00", "yyyy-mm-ddTHH:MM:SS")""")
19541954
Você pode encontrar mais informações sobre como especificar diferentes formatos de data na [documentação `Dates`' de Julia](https://docs.julialang.org/en/v1/stdlib/Dates/#Dates.DateFormat).
19551955
Não se preocupe se você tiver que revisitá-lo o tempo todo, nós mesmos fazemos isso ao trabalhar com datas e timestamps.
19561956

1957-
De acordo com a [documentação `Dates`' de Julia](https://docs.julialang.org/en/v1/stdlib/Dates/#Constructors), usar o `Date(date_string, format_string)` método é satisfatório se ele for chamado apenas algumas vezes.
1957+
De acordo com a [documentação `Dates`' de Julia](https://docs.julialang.org/en/v1/stdlib/Dates/#Constructors), usar o método `Date(date_string, format_string)` é satisfatório se ele for chamado apenas algumas vezes.
19581958
Se houver muitas strings de data formatadas de forma semelhante para analisar, no entanto, é muito mais eficiente criar primeiro um tipo `DateFormat`, e, em seguida, o passar em vez de uma string de formato bruto.
19591959
Então, nosso exemplo anterior se torna:
19601960

@@ -1972,7 +1972,7 @@ Como alternativa, sem perda de desempenho, você pode usar o prefixo de string l
19721972
sco("""Date("19870913", dateformat"yyyymmdd")""")
19731973
```
19741974

1975-
#### Extraindo informações de data {#sec:dates_information}
1975+
#### Extraindo Informações de Data {#sec:dates_information}
19761976

19771977
É fácil **extrair as informações desejadas dos objetos `Date` e` DateTime`**.
19781978
Primeiro, vamos criar uma instância de uma data muito especial:
@@ -2030,7 +2030,7 @@ Sim, José nasceu no segundo domingo de setembro.
20302030
> Use o `filter` no `dayofweek(your_date) <= 5`.
20312031
> Para o dia útil, você pode verificar o pacote [`BusinessDays.jl`](https://github.com/JuliaFinance/BusinessDays.jl).
20322032
2033-
#### Operações de data {#sec:dates_operations}
2033+
#### Operações de Data {#sec:dates_operations}
20342034

20352035
Podemos realizar **operações** em instâncias de `Dates`.
20362036
Por exemplo, podemos adicionar dias a uma instância `Date` ou `DateTime`.
@@ -2125,7 +2125,7 @@ sco("collected_date_interval .+ Day(10)")
21252125

21262126
Da mesma forma, esses exemplos funcionam para tipos `DateTime` também.
21272127

2128-
### Números aleatórios {#sec:random}
2128+
### Números Aleatórios {#sec:random}
21292129

21302130
Outro módulo importante na biblioteca padrão de Julia é o módulo `Random`.
21312131
Este módulo lida com **geração de números aleatórios**.

0 commit comments

Comments
 (0)