Jump to content

Implementações de funções nas várias linguagens


Go to solution Solved by M6,

Recommended Posts

Bom dia,

tenho uma dúvida sobre como faço para verificar a diferença das implementações das funções nas várias linguagens de programação.

Uma vez ao verificar a linguagem R , verifico que a implementação difere do python e gostaria de saber os fundamentos para perceber como a função está implementada num caso e no outro.

mtcars.head()

Error: could not find function "mtcars.head"

# Call head() on mtcars

head(mtcars)

 

------------------------------

Suppose you want to output the first and last 10 rows of the iris data set.

In R:

data(iris)

head(iris, 10)

tail(iris, 10)

In Python (scikit-learn required to load the iris data set):

import pandas as pd

from sklearn import datasets

iris = pd.DataFrame(datasets.load_iris().data)

iris.head(10)

iris.tail(10)

-------

fonte: https://stackoverflow.com/questions/25211220/python-equivalent-of-rs-head-and-tail-function

 

Link to comment
Share on other sites

Não sei se percebi a tua questão.

A tua questão é a implementação do head e do tail?

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Em 20/05/2022 às 16:23, M6 disse:

Não sei se percebi a tua questão.

A tua questão é a implementação do head e do tail?

Olá M6, 

queria arranjar um método para perceber como devo chamar a função ou para perceber a forma/porque que se chama dessa maneira.

Visto que, fica confuso quando trabalhamos com 2 funções de programação em simultâneo.

Neste caso tanto faz, 

quero saber as diferenças entre a definição/implementação no python e R

pois as chamadas são com a estrutura fora e antes do parentisis no python
e no R a estrutura iris está dentro.


abraço

 

Link to comment
Share on other sites

Creio que continuo a não compreender totalmente as tuas dúvidas, mas vou tentar trazer alguma luz ao assunto.

O nome das funções é o que se quiser, podia ser "batatas fritas" ou "palmadinhas nas costas".

Quanto à implementação, partindo do principio que fazem a mesma coisas, seguem um algoritmo, por exemplo, no caso de "head" poderá ser devolver o primeiro elemento de uma lista e o "tail" o último elemento de uma lista (ou primeira/última linha de um ficheiro; ou primeiro/último vetor de uma matriz).

Por exemplo, o head em R: https://r-lang.com/r-head-function/; o tail em Pandas: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.tail.html

Quanto a trabalhar com duas funções ao mesmo tempo, isso não acontece aí, é uma de cada vez. Só terias uma situação de simultaneidade em caso de programação concorrente.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Sim M6, não me expliquei bem

então posso dizer que: 
em R data, head e tail são funções, enquanto em python são métodos da class iris ou dataframe (que vem do pacote pandas...)?

abraço

 

Link to comment
Share on other sites

  • Solution

Correto.

Em Python a biblioteca Pandas tem essas funções como métodos do dataframe e em R elas existem de forma nativa no core da linguagem.
Um método não é mais do que uma função "agarrada" a uma classe.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Posted (edited)

Bom dia,

por curiosidade gostava de converter o seguinte programa em R:

rv <- 1:20
mtrx <- matrix(rv, nrow = 5, ncol = 4)
mtrx
cat("Using head() function to get first 3 rows", "\n")
head(mtrx,3)

 

    [,1] [,2] [,3] [,4]
[1,]    1    6   11   16
[2,]    2    7   12   17
[3,]    3    8   13   18

para python, porque queria observar a ordem de atribuição de valores de um vetor para uma matriz. 

 

Em python fiz assim para criar uma lista: 

rv = list(range(0,21))
print(rv)
mat = []
while rv != []:
    mat.append(rv[:1])
    rv = rv[1:]
print(mat)

Estou a procurar como colocar numa matriz para depois comparar a forma de ordenação

Em R o que altera são as rows,

pensei que o mais normal era alterar as colunas primeiramente. 

 

# update transform a order sequence (Python list) to a matrix
rv = list(range(0,21))
print(rv)
arr = np.asarray(rv)
print(arr)
#x = np.array([[1, 2], [3, 4]])
m = np.asmatrix(arr)
print(m)
import numpy as np
  
  
matrix= np.arange(1,21).reshape((5, 4))
  
# Original matrix
print(matrix)
  
# Number of rows and columns of the said matrix
print(matrix.shape)
print([:3,])  # 3 first rows, all columns

[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]

Edited by jonhhy
Link to comment
Share on other sites

R: [,1] [,2] [,3] [,4]

[1,]  1   6   11  16

[2,]  2   7   12  17

[3,]  3   8   13  18

Python: [ [ 1  2  3  4]
               [ 5  6  7  8]
               [ 9 10 11 12]]

A conclusão que quero chegar, é que a forma de ordenar um array numa matriz no R é diferente da ordem de ordenar noutras linguagens, neste caso no Python, certo?

Link to comment
Share on other sites

Não há qualquer ordenação em nenhum dos dois exemplos.
Pegas num vetor com 20 inteiros e usa-lo como input para criares uma matriz.
Ora, não dando mais nenhuma indicação sobre o posicionamento dos elementos, o R agarra e começa a atribuir os valores por coluna e o Python fá-lo por linha.
Se vieres a documentação do R, podes ter a mesma atribuição que em Python (por linha), quando passas o parâmetro byrow = TRUE.

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.