<jupyter_start><jupyter_text>Tipuri de celuleUn document interactiv Colab conține două tipuri de celule: cod și text (**formatat** *dacă* `este` nevoie). Acesta este o celulă de tip text.<jupyter_code># Pentru rulare apăsați butonul play din stânga sau selectați celula și apăsați Shift+Enter
print('Iar acesta este o celulă de tip cod.')<jupyter_output>Iar acesta este o celulă de tip cod.<jupyter_text>Comenzi sistemNotebook-ul Colab rulează într-o mașină virtuală la care avem accesa direct. Pentru a rula comenzi în terminalul VM, acestea trebuie prefixate cu semnul exclamării.<jupyter_code>!touch fisiernou1.txt
!echo "Hello, World!" > fisiernou2.txt
print('Listare fisiere\n')
!ls -l
print('Calea directorului de lucru actual este:\n')
!pwd
print('Listare continut fisiernou2.txt\n')
!cat fisiernou2.txt
print('Listare versiune Python\n')
!python --version
print('Listare informatii VM\n')
!df -h
!lscpu
!cat /proc/cpuinfo
!cat /proc/meminfo | egrep 'MemTotal'

print('Stergerea fisierelor txt create\n')
!rm *.txt
!ls
print('Instalarea unor librarii Python cu pip\n')
!pip install deap<jupyter_output>Instalarea unor librarii Python cu pip

Collecting deap
[?25l  Downloading https://files.pythonhosted.org/packages/99/d1/803c7a387d8a7e6866160b1541307f88d534da4291572fb32f69d2548afb/deap-1.3.1-cp37-cp37m-manylinux2010_x86_64.whl (157kB)
[K     |████████████████████████████████| 163kB 7.5MB/s 
[?25hRequirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from deap) (1.19.5)
Installing collected packages: deap
Successfully installed deap-1.3.1<jupyter_text>Încărcare și descărcare de dateDatele necesare procesării în Google Colab pot fi încărcate interactiv, montate în Google Drive sau importate din orice sursă de pe internet. La fel, salvarea se poate face în Google Drive sau fișierele pot fi descărcate.  Încărcarea fișierelor din sistemul de fișiere local `files.upload` returnează un dicționar al fișierelor încărcate.<jupyter_code>from google.colab import files

uploaded = files.upload()

for fn in uploaded.keys():
  print('A fost incarcat fisierul "{name}" de marimea {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))<jupyter_output><empty_output><jupyter_text>Descărcarea fișierelor`files.download` va invoca o descărcare prin browser a fișierlor.<jupyter_code>from google.colab import files
import random

x = random.choices(range(0, 9), k=20)
print(x)

with open('numere.txt', 'w') as f:
  f.write(str(x))

!cat numere.txt

files.download('numere.txt')<jupyter_output>[3, 5, 4, 1, 1, 8, 4, 1, 7, 1, 2, 3, 2, 6, 3, 5, 7, 0, 3, 5]
[3, 5, 4, 1, 1, 8, 4, 1, 7, 1, 2, 3, 2, 6, 3, 5, 7, 0, 3, 5]<jupyter_text>Montarea Google DriveGoogle Drive se poate monta pe runtime folosind un cod de autorizare obținut după un pas de logare-autorizare cu contul Google asociat. După montare, fișierele din Drive sunt accesibile pentru citire și scriere.<jupyter_code>from google.colab import drive
drive.mount('/content/drive')
!ls '/content/drive/MyDrive'
with open('/content/drive/MyDrive/hello.txt', 'w') as f:
  f.write('Hello, Google Drive!')
!cat '/content/drive/MyDrive/hello.txt'
drive.flush_and_unmount()
print('Toate modificarile efectuate in aceasta sesiune colab sunt acum vizibile în Drive. Verificati accesand drive.google.com')<jupyter_output>Toate modificarile efectuate in aceasta sesiune colab sunt acum vizibile în Drive. Verificati accesand drive.google.com<jupyter_text>---  Exerciții1.   Pentru reîmprospătarea și aprofundarea cunoștințelor Python, rulați selectiv exemplele din tutorialul [A Crash Course in Python for Scientists](https://nbviewer.jupyter.org/gist/rpmuller/5920182) în acest notebook, prin inserarea de noi celule cod. Unele exemple trebuie adaptate pentru Python 3 (ex. `print x` devine `print(x)`, `7/3` nu este trunchiat, rezultatul va fi deja tip `float` etc.).2.   Încărcați acest [fișier csv](https://people.sc.fsu.edu/~jburkardt/data/csv/hw_200.csv) în Google Drive-ul personal. Apoi,    * citiți fișierul din Drive și transformați datele în sistemul metric (cm și kg);    * vizualizați datele cu ajutorul unui [scatterplot](https://pythonspot.com/matplotlib-scatterplot/);    * [salvați](https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.savefig.html) și descărcați imaginea obținută pe calculator ([nu uitați să etichetați axele](https://matplotlib.org/3.1.0/gallery/pyplots/fig_axes_labels_simple.html));    * afișați care este înălțimea și greutatea minimă, maximă și medie. 3. [Generați aleatoriu](https://www.geeksforgeeks.org/random-choices-method-in-python/) 10000 de șiruri binare de lungime 100.4. Calculați suma de biți pentru fiecare șir și vizualizați distribuția sumelor cu o [histogramă](https://matplotlib.org/3.1.1/gallery/statistics/hist.html). 5. Salvați într-un fișier din Google Drive șirurile a căror sumă depășește 70.<jupyter_code>days_of_the_week = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
for day in days_of_the_week:
    statement = "Today is " + day
    print(statement)
numbers = range(0,40)
evens = numbers[2::2]
evens
def fibonacci(sequence_length):
    #"Return the Fibonacci sequence of length *sequence_length*"
    sequence = [0,1]
    if sequence_length < 1:
        print("Fibonacci sequence only defined for length 1 or greater")
        return
    if 0 < sequence_length < 3:
        return sequence[:sequence_length]
    for i in range(2,sequence_length): 
        sequence.append(sequence[i-1]+sequence[i-2])
    return sequence

print(fibonacci(7))
ages = {"Rick": 46, "Bob": 86, "Fred": 21}
print ("Rick's age is ",ages["Rick"])
import pandas as pd
%pylab inline
fibs = fibonacci(10)
figsize(8,6)
plot(facts,label="factorial")
plot(fibs,label="Fibonacci")
xlabel("n")
legend()
identity(4,'d')
x = linspace(0,2*pi)
sin(x)
from random import random
rands = []
for i in range(100):
    rands.append(random())
plot(rands)
!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
import pandas as pd

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

fileDownloaded = drive.CreateFile({'id':'1X9oI8lIen5emwX1EWm6DWwwuKoEeSYlP'})
fileDownloaded.GetContentFile('hw_200.csv')

import pandas as pd
df = pd.read_csv('hw_200.csv' )
print(df)

df['Inaltime'] = df[' Height(Inches)"'] * 2.54
print(df['Inaltime'])
print(df['Inaltime'].max())

df['Greutate'] = df[' "Weight(Pounds)"'] * 0.453592
print(df['Greutate'])
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(12, 8))

plt.scatter(df['Inaltime'], df['Greutate'])
plt.xlabel('Inaltimea')
plt.ylabel('Greutatea')

fig.suptitle('Relatia dintre inaltime si greutate', fontsize=18)
fig.savefig('scatter.png')
print('Inaltimea maxima:',df['Inaltime'].max())
print('Inaltimea cea mai mica:',df['Inaltime'].min())
print('Inaltimea medie:',df['Inaltime'].mean())
from google.colab import files
files.download('scatter.png')

plt.hist(df['Inaltime'])
plt.hist(df['Greutate'])
from random import random
import numpy as np
rnd = np.random.randint(2, size=(10000, 100))
print(rnd)
x = [np.sum(i) for i in rnd]
print (x)
plt.hist(x)
save = np.asarray(list(filter(lambda k: (np.sum(k) > 65), x)))
print(len(save))<jupyter_output>10
{'fraction_non_alphanumeric': 0.12684960990045735, 'fraction_numerical': 0.03214958299704063, 'mean_word_length': 5.2374161073825505, 'pattern_counts': {'":': 3, '<': 23, '<?xml version=': 0, '>': 22, 'https://': 8, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '388035', 'license': 'MIT', 'n_tokens_mistral': 3029, 'n_tokens_neox': 2814, 'n_words': 727, 'path': 'Copy_of_MIB2021_lab01_02.ipynb', 'repo_name': 'mariusmoldovanmihai/pydata-book', 'size': '7434'}