Comments on: Les slices, c’est rapide et c’est beau http://sametmax.com/les-slices-cest-rapide-et-cest-beau/ Du code, du cul Sat, 07 Nov 2015 11:08:18 +0000 hourly 1 http://wordpress.org/?v=4.1 By: Jean-Hube http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159867 Tue, 28 Apr 2015 12:15:03 +0000 http://sametmax.com/?p=16085#comment-159867 J’array donc je suis !

]]>
By: betepoilue http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159336 Sun, 19 Apr 2015 18:23:16 +0000 http://sametmax.com/?p=16085#comment-159336 @sam pardon je n’ai pas pu répondre plus tôt !! Merci beaucoup pour l’explication complète et le code, je ne savais pas du tout que les types en python fonctionnaient de cette manière. Ça a l’air super intéréssant en tout cas, je vais regarder ça et du côté d’array du coup. Merci !!

]]>
By: joshuafr http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159317 Sat, 18 Apr 2015 17:59:13 +0000 http://sametmax.com/?p=16085#comment-159317 pas doué le gars avec les tags…

]]>
By: joshuafr http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159316 Sat, 18 Apr 2015 17:58:17 +0000 http://sametmax.com/?p=16085#comment-159316 @Sam j’ai pris les mêmes que toi

 
import pandas as pd
 
import timeit
 
pixels = range(300)
 
def version5():
 
df = pd.DataFrame(pd.np.array(pixels).reshape(100, 3))
 
df = df[[0, 2, 1]]
 
return df.stack().tolist()
 
print(timeit.timeit('version5()', setup='from __main__ import version5'))
]]>
By: Sam http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159268 Fri, 17 Apr 2015 15:08:46 +0000 http://sametmax.com/?p=16085#comment-159268 Si on a pas le code timeit derrière ni tes données en pixels, ça va être dur.

]]>
By: joshuafr http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159264 Fri, 17 Apr 2015 14:26:17 +0000 http://sametmax.com/?p=16085#comment-159264 Alors pour le coup, j’ai voulu tester avec Pandas une autre solution:

import pandas as pd

def version5():

df = pd.DataFrame(pd.np.array(pixels).reshape(100, 3))

df = df[[0, 2, 1]]

return df.stack().tolist()

Mais timeit met un temps infini et je dois killer le test oO. Si quelqu’un sait pourquoi, ça m’interesse

]]>
By: Sam http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159259 Fri, 17 Apr 2015 11:55:23 +0000 http://sametmax.com/?p=16085#comment-159259 @betepoilue: les entiers Python sont bien écrits en C, mais sont des objets complexes. Alors qu’en C, définir un entier long peut se faire un simple “signed double var = “, faire un entier long en Python utilise une struture bien plus complexe :

typedef struct _object {
    _PyObject_HEAD_EXTRA
    Py_ssize_t ob_refcnt;
    struct _typeobject *ob_type;
} PyObject;
 
 
struct _longobject {
    long ob_refcnt;
    PyTypeObject *ob_type;
    size_t ob_size;
    long ob_digit[1];
};

Le module array est un module Python un peu particulier, qui permet de stocker ses valeurs sous la forme qu’on utiliserait en C. Mais quand on sort une valeur de l’array, il faut de nouveau l’enrober dans une structure complexe.

]]>
By: Furankun http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159249 Fri, 17 Apr 2015 10:09:21 +0000 http://sametmax.com/?p=16085#comment-159249 On s’en fout des fautes, on est trop excités :D

(merci pour les précisions)

]]>
By: Tim http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159240 Fri, 17 Apr 2015 07:47:16 +0000 http://sametmax.com/?p=16085#comment-159240 “Mais mesurer révèle que”, c’est pas plutôt “Mes mesures révèlent que” ?

]]>
By: betepoilue http://sametmax.com/les-slices-cest-rapide-et-cest-beau/#comment-159224 Thu, 16 Apr 2015 23:15:33 +0000 http://sametmax.com/?p=16085#comment-159224 J’ai encore appris quelque chose aujourd’hui grâce à vous et Bubulle du coup merci !! :)

Juste un truc que j’ai pas capté, quand tu dis qu’il y a une conversion de type entre C et python pour les integer dans un array ça veut dire quoi ? Je pensais que python était basé sur C et que du coup il utilisait les même valeurs en mémoire pour stocker un int ? (Message de gros noob numéro 4529)

]]>