Tuesday 23 April 2024

Taming Data with Tuples



Creating Tuples:

You can create a tuple by enclosing a sequence of elements within parentheses ().


tuple1 = (1, 2, 3)

tuple2 = ('a', 'b', 'c')

mixed_tuple = (1, 'hello', 3.14)


#clcoding.com 

Accessing Elements:

You can access elements of a tuple using indexing, just like with lists.


tuple1 = (1, 2, 3)

print(tuple1[0])  

print(tuple1[1])  


#clcoding.com 

1

2

Iterating over Tuples:

You can iterate over the elements of a tuple using a loop.

tuple1 = ('apple', 'banana', 'cherry')
for fruit in tuple1:
    print(fruit)
    
#clcoding.com
apple
banana
cherry

Tuple Methods:

Tuples have only two built-in methods: count() and index().

tuple1 = (1, 2, 2, 3, 4, 2)
print(tuple1.count(2))  # Output: 3
print(tuple1.index(3))  # Output: 3

#clcoding.com
3
3


Immutable Nature:

Once a tuple is created, you cannot modify its elements.


tuple1 = (1, 2, 3)

# This will raise an error

tuple1[0] = 4


#clcoding.com

Tuple Unpacking:

You can unpack a tuple into individual variables.


tuple1 = ('apple', 'banana', 'cherry')

a, b, c = tuple1

print(a)  

print(b)  

print(c)  


#clcoding.com

apple

banana

cherry


Returning Multiple Values from Functions:

Functions in Python can return tuples, allowing you to return multiple values.


def get_coordinates():

    x = 10

    y = 20

    return x, y


x_coord, y_coord = get_coordinates()

print("x coordinate:", x_coord)  

print("y coordinate:", y_coord)  


#clcoding.com

x coordinate: 10

y coordinate: 20

Iterating over Tuples:

You can iterate over the elements of a tuple using a loop.


tuple1 = ('apple', 'banana', 'cherry')

for fruit in tuple1:

    print(fruit)

    

#clcoding.com

apple

banana

cherry

Sorting Algorithms using Python

 

Code:

def selection_sort(arr):

    n = len(arr)

    for i in range(n):

        min_idx = i

        for j in range(i+1, n):

            if arr[j] < arr[min_idx]:

                min_idx = j

        arr[i], arr[min_idx] = arr[min_idx], arr[i]

    return arr


# Example usage:

arr = [64, 34, 25, 12, 22, 11, 90]

print("Original array:", arr)

sorted_arr = selection_sort(arr)

print("Sorted array:", sorted_arr)


#clcoding.com

Explanation: 

The selection_sort function sorts a given array arr in ascending order using the selection sort algorithm. Here's how it works:

Initialization:
Get the length of the array arr and store it in the variable n.
Outer Loop:
Iterate over each element of the array from index 0 to n-1.
For each iteration, consider the current element as the minimum (min_idx).
Inner Loop:
Within each outer loop iteration, iterate over the unsorted part of the array from index i+1 to n-1.
Find the index of the minimum element (min_idx) among the unsorted elements.
Swap:
After finding the minimum element in the unsorted part, swap it with the element at index i, which is the first element of the unsorted part.
Repeat:
Repeat steps 2-4 until the entire array is sorted.
Return Sorted Array:
Return the sorted array arr.
Now, let's walk through the provided example:

arr = [64, 34, 25, 12, 22, 11, 90]
We start with the original array [64, 34, 25, 12, 22, 11, 90].

sorted_arr = selection_sort(arr)
We call the selection_sort function with the array arr and store the sorted array in sorted_arr.

print("Sorted array:", sorted_arr)
We print the sorted array.
Output:

Original array: [64, 34, 25, 12, 22, 11, 90]
Sorted array: [11, 12, 22, 25, 34, 64, 90]
The original array is [64, 34, 25, 12, 22, 11, 90].
After sorting, the array becomes [11, 12, 22, 25, 34, 64, 90], which is printed as the sorted array.

Code:

def quick_sort(arr):

    if len(arr) <= 1:

        return arr

    pivot = arr[len(arr) // 2]

    left = [x for x in arr if x < pivot]

    middle = [x for x in arr if x == pivot]

    right = [x for x in arr if x > pivot]

    return quick_sort(left) + middle + quick_sort(right)


# Example usage:

arr = [64, 34, 25, 12, 22, 11, 90]

print("Original array:", arr)

sorted_arr = quick_sort(arr)

print("Sorted array:", sorted_arr)


#clcoding.com

Explanation: 

The quick_sort function implements the quicksort algorithm, a popular sorting algorithm known for its efficiency. Here's how it works:

Base Case:

If the length of the input array arr is 0 or 1, it is already sorted, so we return the array as is.

Pivot Selection:

Choose a pivot element from the array. In this implementation, the pivot is selected as the element at the middle index (len(arr) // 2).

Partitioning:

Partition the array into three sub-arrays:

left: Contains elements less than the pivot.

middle: Contains elements equal to the pivot.

right: Contains elements greater than the pivot.

Recursion:

Recursively apply the quicksort algorithm to the left and right sub-arrays.

Combine:

Concatenate the sorted left, middle, and right sub-arrays to form the sorted array.

Now, let's walk through the provided example:

arr = [64, 34, 25, 12, 22, 11, 90]

We start with the original array [64, 34, 25, 12, 22, 11, 90].

sorted_arr = quick_sort(arr)

We call the quick_sort function with the array arr and store the sorted array in sorted_arr.

print("Sorted array:", sorted_arr)

We print the sorted array.

Output:

Original array: [64, 34, 25, 12, 22, 11, 90]

Sorted array: [11, 12, 22, 25, 34, 64, 90]

The original array is [64, 34, 25, 12, 22, 11, 90].

After sorting, the array becomes [11, 12, 22, 25, 34, 64, 90], which is printed as the sorted array.

Code:

def bubble_sort(arr):

    n = len(arr)

    for i in range(n):

        for j in range(0, n-i-1):

            if arr[j] > arr[j+1]:

                arr[j], arr[j+1] = arr[j+1], arr[j]

    return arr

# Example usage:

arr = [64, 34, 25, 12, 22, 11, 90]

print("Original array:", arr)

sorted_arr = bubble_sort(arr)

print("Sorted array:", sorted_arr)


#clcoding.com

Explanation:

The bubble_sort function implements the bubble sort algorithm, which repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. Here's how it works:

Iteration:
The outer loop iterates through the entire array arr.
Each iteration (i) represents one pass through the array.
Comparison and Swapping:
The inner loop iterates from index 0 to n - i - 1.
Within each inner loop iteration (j), adjacent elements arr[j] and arr[j+1] are compared.
If arr[j] is greater than arr[j+1], they are swapped.
Largest Element Bubbles Up:
With each pass of the outer loop, the largest element in the unsorted part of the array "bubbles up" to its correct position at the end of the array.
Repeat Until Sorted:
Repeat steps 1-3 until the entire array is sorted.
Now, let's walk through the provided example:

arr = [64, 34, 25, 12, 22, 11, 90]
We start with the original array [64, 34, 25, 12, 22, 11, 90].

sorted_arr = bubble_sort(arr)
We call the bubble_sort function with the array arr and store the sorted array in sorted_arr.

print("Sorted array:", sorted_arr)
We print the sorted array.
Output:

Original array: [64, 34, 25, 12, 22, 11, 90]
Sorted array: [11, 12, 22, 25, 34, 64, 90]
The original array is [64, 34, 25, 12, 22, 11, 90].
After sorting, the array becomes [11, 12, 22, 25, 34, 64, 90], which is printed as the sorted array.


Code:

def insertion_sort(arr):

    for i in range(1, len(arr)):

        key = arr[i]

        j = i - 1

        while j >= 0 and key < arr[j]:

            arr[j + 1] = arr[j]

            j -= 1

        arr[j + 1] = key

    return arr


# Example usage:

arr = [64, 34, 25, 12, 22, 11, 90]

print("Original array:", arr)

sorted_arr = insertion_sort(arr)

print("Sorted array:", sorted_arr)


#clcoding.com

Explanation:

The insertion_sort function implements the insertion sort algorithm, which builds the final sorted array one element at a time by repeatedly moving elements that are out of order. Here's how it works:

Iteration:
The outer loop iterates over the array arr, starting from index 1.
Each iteration (i) considers one element at a time, starting from the second element.
Key Selection:
Within each iteration, the current element (arr[i]) is selected as the key to be inserted into the sorted sub-array.
Comparison and Shifting:
The inner loop (while loop) compares the key with the elements in the sorted sub-array (elements before arr[i]).
Elements greater than the key are shifted one position to the right to make space for the key.
This shifting continues until an element less than or equal to the key is found, or until the beginning of the array is reached (j < 0).
Insertion:
Once the correct position for the key is found, it is inserted into the sorted sub-array at index j + 1.
Repeat Until Sorted:
Repeat steps 1-4 until the entire array is sorted.
Now, let's walk through the provided example:

arr = [64, 34, 25, 12, 22, 11, 90]
We start with the original array [64, 34, 25, 12, 22, 11, 90].

sorted_arr = insertion_sort(arr)
We call the insertion_sort function with the array arr and store the sorted array in sorted_arr.

print("Sorted array:", sorted_arr)
We print the sorted array.
Output:

Original array: [64, 34, 25, 12, 22, 11, 90]
Sorted array: [11, 12, 22, 25, 34, 64, 90]
The original array is [64, 34, 25, 12, 22, 11, 90].
After sorting, the array becomes [11, 12, 22, 25, 34, 64, 90], which is printed as the sorted array.






Monday 22 April 2024

Python Coding challenge - Day 182 | What is the output of the following Python Code?

 

Code:

x = [1, 2, 3]

y = x[:]

x[0] = 4

print(y)

Solutiomn and Explanation:

When you do y = x[:], you are creating a shallow copy of the list x and assigning it to y. A shallow copy creates a new object but does not recursively copy the objects within the original object. So, while x and y are separate lists, if the elements within them are mutable (like lists themselves), changes to those elements will affect both lists.

Here's a step-by-step breakdown:

x = [1, 2, 3]: You create a list x containing the elements 1, 2, and 3.
y = x[:]: You create a shallow copy of list x and assign it to y. Now y also contains the elements 1, 2, and 3.
x[0] = 4: You modify the first element of list x to 4. Now x becomes [4, 2, 3].
print(y): You print the contents of list y, which remains [1, 2, 3].
Even though you changed x, y remains unchanged because it's a separate list with its own memory space, thanks to the shallow copy operation.


Sunday 21 April 2024

Python Coding challenge - Day 181 | What is the output of the following Python Code?

 

Code:

x = {"name": "John", "age": 30}

y = x.copy()

x["name"] = "Jane"

print(y["name"])

Solution and Explanation:

Let's break down each step:

x = {"name": "John", "age": 30}:
This line initializes a dictionary x with two key-value pairs: "name" with the value "John" and "age" with the value 30. So, x becomes {"name": "John", "age": 30}.
y = x.copy():
Here, you're creating a copy of the dictionary x and assigning it to y. This creates a new dictionary y with the same key-value pairs as x.
Importantly, this is a shallow copy, meaning it copies the references to the objects rather than creating new objects. In this case, since the values are immutable (strings and integers), it behaves as expected. If the values were mutable objects like lists or dictionaries, modifying them in one copy would affect the other as well.
x["name"] = "Jane":
This line changes the value associated with the key "name" in the original dictionary x from "John" to "Jane". So, x becomes {"name": "Jane", "age": 30}.
print(y["name"]):
Here, you're printing the value associated with the key "name" in the dictionary y.
Despite changing the value associated with the key "name" in the original dictionary x, the value associated with the key "name" in the copied dictionary y remains unchanged.
This is because y is a separate copy of x created before the modification, so changes to x after the copy won't affect y.
Therefore, print(y["name"]) will output "John", not "Jane", since y retains the original values before the modification of x.
In summary, x and y start as identical dictionaries. Modifying x after creating y doesn't affect the contents of y because y is an independent copy made before the modification.

Python Program to find info about Chemical Formula

 

import pubchempy as pcp

# Take name as input

chemical_name = input("Enter chemical name: ")

try:

    # Search PubChem for the compound by its name

    compound = pcp.get_compounds(chemical_name, 'name')[0]

    # Display information about the compound

    print(f"IUPAC Name: {compound.iupac_name}")

    print(f"Common Name: {compound.synonyms[0]}")

    print(f"Molecular Weight: {compound.molecular_weight}")

    print(f"Formula: {compound.molecular_formula}")

    # You can access more properties as needed

except IndexError:

    print(f"No information found for {chemical_name}.")

    #clcoding.com

Explanation: 

This code snippet performs a similar task to the previous one but takes the name of a chemical compound as input instead of its chemical formula. Here's an explanation of each part:

import pubchempy as pcp: This line imports the PubChemPy library and aliases it as pcp, allowing us to refer to it more conveniently in the code.

chemical_name = input("Enter chemical name: "): This line prompts the user to input the name of the chemical compound they want to retrieve information about. The input is stored in the variable chemical_name.

try:: This starts a try-except block, indicating that we are going to try a piece of code that might raise an exception, and if it does, we'll handle it gracefully.

compound = pcp.get_compounds(chemical_name, 'name')[0]: This line uses the get_compounds function from the PubChemPy library to search for compounds matching the provided chemical name. The function takes two arguments: the chemical name (chemical_name) and a string indicating that we are searching by name ('name'). Since get_compounds returns a list of compounds, we select the first compound using [0] and assign it to the variable compound.

Printing compound information:

print(f"IUPAC Name: {compound.iupac_name}"): This line prints the IUPAC (International Union of Pure and Applied Chemistry) name of the compound.

print(f"Common Name: {compound.synonyms[0]}"): This line prints the common name of the compound, using the first synonym available.

print(f"Molecular Weight: {compound.molecular_weight}"): This line prints the molecular weight of the compound.

print(f"Formula: {compound.molecular_formula}"): This line prints the molecular formula of the compound.

except IndexError:: This block catches the IndexError exception, which occurs if no compound is found for the provided chemical name.

print(f"No information found for {chemical_name}."): If an IndexError occurs, this line prints a message indicating that no information was found for the provided chemical name.

In summary, this code allows the user to input the name of a chemical compound, searches for the corresponding compound in the PubChem database using PubChemPy, and displays information about the compound if found. If no information is found for the provided name, it prints a corresponding message.


import pubchempy as pcp

# Define the chemical formula 

chemical_formula = input("Enter chemical Formula : ")  

try:

    # Search PubChem for the compound by its chemical formula

    compound = pcp.get_compounds(chemical_formula, 'formula')[0]

    # Display information about the compound

    print(f"IUPAC Name: {compound.iupac_name}")

    print(f"Common Name: {compound.synonyms[0]}")

    print(f"Molecular Weight: {compound.molecular_weight}")

    print(f"Formula: {compound.molecular_formula}")

    # You can access more properties as needed

except IndexError:

    print(f"No information found for {chemical_formula}.")

    #clcoding.com

Explantion:

This code snippet aims to retrieve information about a chemical compound using its chemical formula. Here's a breakdown of each part:

import pubchempy as pcp: This line imports the PubChemPy library and aliases it as pcp, allowing us to refer to it more conveniently in the code. PubChemPy is a Python library for accessing chemical information from the PubChem database.

chemical_formula = input("Enter chemical Formula : "): This line prompts the user to input the chemical formula of the compound they want to retrieve information about. The input is stored in the variable chemical_formula.

try:: This starts a try-except block, indicating that we are going to try a piece of code that might raise an exception, and if it does, we'll handle it gracefully.

compound = pcp.get_compounds(chemical_formula, 'formula')[0]: This line uses the get_compounds function from the PubChemPy library to search for compounds matching the provided chemical formula. The function takes two arguments: the chemical formula (chemical_formula) and a string indicating that we are searching by formula ('formula'). Since get_compounds returns a list of compounds, we select the first compound using [0] and assign it to the variable compound.

Printing compound information:

print(f"IUPAC Name: {compound.iupac_name}"): This line prints the IUPAC (International Union of Pure and Applied Chemistry) name of the compound.

print(f"Common Name: {compound.synonyms[0]}"): This line prints the common name of the compound, using the first synonym available.

print(f"Molecular Weight: {compound.molecular_weight}"): This line prints the molecular weight of the compound.

print(f"Formula: {compound.molecular_formula}"): This line prints the molecular formula of the compound.

except IndexError:: This block catches the IndexError exception, which occurs if no compound is found for the provided chemical formula.

print(f"No information found for {chemical_formula}."): If an IndexError occurs, this line prints a message indicating that no information was found for the provided chemical formula.

In summary, this code allows the user to input a chemical formula, searches for the corresponding compound in the PubChem database using PubChemPy, and displays information about the compound if found. If no information is found for the provided formula, it prints a corresponding message.

Saturday 20 April 2024

Python Coding challenge - Day 180 | What is the output of the following Python Code?

 


Code:

x = {"a": 1, "b": 2}

y = {"b": 3, "c": 4}

z = {**x, **y}

Solution and Explanation:

This code is using dictionary unpacking in Python to combine two dictionaries x and y into a new dictionary z. Here's a breakdown:

x is a dictionary with keys "a" and "b", and corresponding values 1 and 2.
y is another dictionary with keys "b" and "c", and values 3 and 4.
The line z = {**x, **y} combines both dictionaries x and y into a new dictionary z. The ** syntax is used for unpacking the dictionaries. This essentially merges the key-value pairs of x and y into z. If there are duplicate keys, the values from y will overwrite the values from x.
Finally, print(z) prints the resulting dictionary z.
So, the output of the print(z) statement will be:

{'a': 1, 'b': 3, 'c': 4}
Notice that the value of "b" is 3 in the merged dictionary z, as it gets overwritten by the value from dictionary y.


print(z)

Friday 19 April 2024

Python Coding challenge - Day 179 | What is the output of the following Python Code?

 

Code:

days = ("Mon", "Tue", "Wed")

print(days[-1:-2])

Solution and Explanation: 

In Python, days = ("Mon", "Tue", "Wed") initializes a tuple named days containing three elements: "Mon", "Tue", and "Wed".

Now, let's break down print(days[-1:-2]):

days[-1] refers to the last element of the tuple days, which is "Wed".
days[-2] refers to the second-to-last element of the tuple days, which is "Tue".
So, days[-1:-2] is a slice from the last element to the element before the second-to-last element. However, slicing works in a way where the start index is inclusive and the end index is exclusive. In this case, days[-1:-2] denotes a slice starting from the last element (inclusive) and ending before the second-to-last element (exclusive), which effectively means it's an empty slice because there are no elements between the last and second-to-last elements.

Therefore, print(days[-1:-2]) will output an empty tuple or an empty list, depending on whether you're using parentheses or square brackets for the output.

Thursday 18 April 2024

Meta Data Analyst Professional Certificate

 


Why Take a Meta Data Analyst Professional Certificate? 

Collect, clean, sort, evaluate, and visualize data

Apply the Obtain, Sort, Explore, Model, Interpret (OSEMN) framework to guide the data analysis process

Learn to use statistical analysis, including hypothesis testing, regression analysis, and more, to make data-driven decisions

Develop an understanding of the foundational principles underpinning effective data management and usability of data assets within organizational context

Aquire the confidence to add the following skills to add to your resume: 

Data analysis

Python Programming

Statistics

Data management

Data-driven decision making

Data visualization

Linear Regression

Hypothesis testing

Data Management

Tableau

Join Free: Meta Data Analyst Professional Certificate

What you'll learn

Collect, clean, sort, evaluate, and visualize data

Apply the OSEMN, framework to guide the data analysis process, ensuring a comprehensive and structured approach to deriving actionable insights

Use statistical analysis, including hypothesis testing, regression analysis, and more, to make data-driven decisions

Develop an understanding of the foundational principles of effective data management and usability of data assets within organizational context

Professional Certificate - 5 course series

Prepare for a career in the high-growth field of data analytics. In this program, you’ll build in-demand technical skills like Python, Statistics, and SQL in spreadsheets to get job-ready in 5 months or less, no prior experience needed.

Data analysis involves collecting, processing, and analyzing data to extract insights that can inform decision-making and strategy across an organization.

In this program, you’ll learn basic data analysis principles, how data informs decisions, and how to apply the OSEMN framework to approach common analytics questions. You’ll also learn how to use essential tools like SQL, Python, and Tableau to collect, connect, visualize, and analyze relevant data.

You’ll learn how to apply common statistical methods to writing hypotheses through project scenarios to gain practical experience with designing experiments and analyzing results. 

When you complete this full program, you’ll have a portfolio of hands-on projects and a Professional Certificate from Meta to showcase your expertise. 

Applied Learning Project

Throughout the program, you’ll get to practice your new data analysis skills through hands-on projects including: 

Identifying data sources

Using spreadsheets to clean and filter data

Using Python to sort and explore data

Using Tableau to visualize results

Using statistical analyses

By the end, you’ll have a professional portfolio that you can show to prospective employers or utilize for your own business.

Python Coding challenge - Day 178 | What is the output of the following Python Code?

 

Code:

a = 'A'

print(int(a, 16))

Solution and Explanation: 

Let's break it down step by step:

a = 'A': This line assigns the character 'A' to the variable a. In Python, characters are represented by strings containing a single character.

int(a, 16): This line converts the string 'A' to an integer using base 16 (hexadecimal) representation. In hexadecimal, 'A' represents the decimal number 10.

So, when you execute print(int(a, 16)), it will output:

10


Wednesday 17 April 2024

Python Coding challenge - Day 177 | What is the output of the following Python Code?

 



Code:

x = [1, 2, 3]

y = [4, 5, 6]

z = [x, y]

print(z[1][1])

Solution and Explanation: 

 Let's break it down step by step:

x = [1, 2, 3]: This line creates a list named x containing three elements: 1, 2, and 3.
y = [4, 5, 6]: This line creates another list named y containing three elements: 4, 5, and 6.
z = [x, y]: This line creates a list named z containing x and y as its elements. So, z is a list of lists, where the first element is the list x and the second element is the list y.
print(z[1][1]): This line prints the element at index 1 of the list at index 1 in z.
Breaking it down further:

z[1] accesses the second element of z, which is the list y.
z[1][1] accesses the element at index 1 of the list y.
So, the output of this code will be 5, because 5 is the element at index 1 of the list y.

Python Coding challenge - Day 176 | What is the output of the following Python Code?

 

Code: 

x = [1, 2, 3]

y = x.copy()

x[0] = 4

print(y)

Solution and Explanation: 

let's break down what happens in the code:

x = [1, 2, 3]: This line initializes a list x with elements [1, 2, 3].
y = x.copy(): This line creates a copy of the list x and assigns it to the variable y. This means y now holds a separate list with the same elements as x.
x[0] = 4: This line changes the first element of the list x to 4. So now x becomes [4, 2, 3].
print(y): This line prints the list y.
The output of this code will be [1, 2, 3]. Even though we changed the first element of x, it doesn't affect the list that y refers to, because y is a separate copy of x created earlier.

Tuesday 16 April 2024

Element information using Python

 

Code:

import periodictable


# Function to get information about an element

def get_element_info(symbol):

    # Check if the symbol is valid

    if not periodictable.elements.symbol(symbol):

        print("Invalid element symbol.")

        return    

    # Access information about the specified element

    element = periodictable.elements.symbol(symbol)

    

    # Print information about the element

    print(f"Element: {element.name}")

    print(f"Symbol: {element.symbol}")

    print(f"Atomic Number: {element.number}")

    print(f"Atomic Weight: {element.mass}")

    print(f"Density: {element.density}")

    

# Prompt the user to input an element symbol

element_symbol = input("Enter the symbol of the element: ")


# Call the function to get information about the specified element

get_element_info(element_symbol)


#clcoding.com

Explanation:

The line import periodictable imports a Python library/module named "periodictable". This library provides information about chemical elements such as their names, symbols, atomic numbers, atomic weights, and other properties.

In the provided code:

get_element_info(symbol) is a function that takes an element symbol as input and retrieves information about that element.
if not periodictable.elements.symbol(symbol): checks if the symbol entered by the user is valid. If it's not valid, it prints "Invalid element symbol." and exits the function.
element = periodictable.elements.symbol(symbol) accesses the information about the specified element using the symbol() method provided by the periodictable library.
Information about the element, such as its name, symbol, atomic number, atomic weight, and density (if available), is then printed using print statements.
The code prompts the user to input an element symbol, then calls the get_element_info function to display information about the specified element. If the element symbol provided by the user is not valid, it informs the user about the invalid input.

do you know difference between Data Analyst , Data Scientist and Data Engineer?


Data Analyst

A data analyst sits between business intelligence and data science. They provide vital information to business stakeholders.

Data Management in SQL (PostgreSQL)

Data Analysis in SQL (PostgreSQL)

Exploratory Analysis Theory

Statistical Experimentation Theory

Free Certification : Data Analyst Certification 

Data Scientist Associate 

A data scientist is a professional responsible for collecting, analyzing and interpreting extremely large amounts of data.

R / Python Programming

Data Manipulation in R/Python

1.1 Calculate metrics to effectively report characteristics of data and relationships between

features

● Calculate measures of center (e.g. mean, median, mode) for variables using R or Python.

● Calculate measures of spread (e.g. range, standard deviation, variance) for variables

using R or Python.

● Calculate skewness for variables using R or Python.

● Calculate missingness for variables and explain its influence on reporting characteristics

of data and relationships in R or Python.

● Calculate the correlation between variables using R or Python.

1.2 Create data visualizations in coding language to demonstrate the characteristics of data

● Create and customize bar charts using R or Python.

● Create and customize box plots using R or Python.

● Create and customize line graphs using R or Python.

● Create and customize histograms graph using R or Python.

1.3 Create data visualizations in coding language to represent the relationships between

features

● Create and customize scatterplots using R or Python.

● Create and customize heatmaps using R or Python.

● Create and customize pivot tables using R or Python.

1.4 Identify and reduce the impact of characteristics of data

● Identify when imputation methods should be used and implement them to reduce the

impact of missing data on analysis or modeling using R or Python.

● Describe when a transformation to a variable is required and implement corresponding

transformations using R or Python.

● Describe the differences between types of missingness and identify relevant approaches

to handling types of missingness.

● Identify and handle outliers using R or Python.

Statistical Fundamentals in R/Python

2.1 Perform standard data import, joining and aggregation tasks

● Import data from flat files into R or Python.

● Import data from databases into R or Python

● Aggregate numeric, categorical variables and dates by groups using R or Python.

● Combine multiple tables by rows or columns using R or Python.

● Filter data based on different criteria using R or Python.

2.2 Perform standard cleaning tasks to prepare data for analysis

● Match strings in a dataset with specific patterns using R or Python.

● Convert values between data types in R or Python.

● Clean categorical and text data by manipulating strings in R or Python.

● Clean date and time data in R or Python.

2.3 Assess data quality and perform validation tasks

● Identify and replace missing values using R or Python.

● Perform different types of data validation tasks (e.g. consistency, constraints, range

validation, uniqueness) using R or Python.

● Identify and validate data types in a data set using R or Python.

2.4 Collect data from non-standard formats by modifying existing code

● Adapt provided code to import data from an API using R or Python.

● Identify the structure of HTML and JSON data and parse them into a usable format for

data processing and analysis using R or Python

Importing & Cleaning in R/Python

3.1 Prepare data for modeling by implementing relevant transformations.
● Create new features from existing data (e.g. categories from continuous data, combining
variables with external data) using R or Python.
● Explain the importance of splitting data and split data for training, testing, and validation
using R or Python.
● Explain the importance of scaling data and implement scaling methods using R or Python.
● Transform categorical data for modeling using R or Python.
3.2 Implement standard modeling approaches for supervised learning problems.
● Identify regression problems and implement models using R or Python.
● Identify classification problems and implement models using R or Python.
3.3 Implement approaches for unsupervised learning problems.
● Identify clustering problems and implement approaches for them using R or Python.
● Explain dimensionality reduction techniques and implement the techniques using R or
Python.
3.4 Use suitable methods to assess the performance of a model.
● Select metrics to evaluate regression models and calculate the metrics using R or Python.
● Select metrics to evaluate classification models and calculate the metrics using R or
Python.
● Select metrics and visualizations to evaluate clustering models and implement them
using R or Python.

Machine Learning Fundamentals in R/Python

4.2 Demonstrates best practices in production code including version control, testing, and
package development.
● Describe the basic flow and structures of package development in R or Python.
● Explain how to document code in packages, or modules in R or Python.
● Explain the importance of the testing and write testing statements in R or Python.
● Explain the importance of version control and describe key concepts of versioning

Free Certification : Data Science  

Data Engineer

A data engineer collects, stores, and pre-processes data for easy access and use within an organization. Associate certification is available.

Data Management in SQL (PostgreSQL)

Exploratory Analysis Theory

Free Certification : Data Science  

Python Coding challenge - Day 175 | What is the output of the following Python Code?

 

Code:

x = [1, 2, 3]

y = [4, 5, 6]

z = [x, y]

print(z[0][1])

Solution and Explanation:

Let's break down the code step by step:

x = [1, 2, 3]: This line creates a list named x containing the elements 1, 2, and 3.

y = [4, 5, 6]: This line creates another list named y containing the elements 4, 5, and 6.

z = [x, y]: Here, a list named z is created, containing two lists: x and y. So, z becomes [[1, 2, 3], [4, 5, 6]].

print(z[0][1]): This line prints the element at index 1 of the first list in z. Since z[0] refers to [1, 2, 3] and z[0][1] refers to the element at index 1 of that list, the output will be 2.

Monday 15 April 2024

Automatically Generate Image CAPTCHAs with Python for Enhanced Security

 

Code:

from captcha.image import ImageCaptcha 

import random

# Specify the image size

image = ImageCaptcha(width=450, height=100)

# Generate random captcha text

def generate_random_captcha_text(length=6):

    characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'

    captcha_text = ''.join(random.choice(characters) for _ in range(length))

    return captcha_text


# Get random captcha text

captcha_text = generate_random_captcha_text()


# Generate the image of the given text

data = image.generate(captcha_text)


# Write the image on the given file and save it

image.write(captcha_text, 'CAPTCHA1.png')


from PIL import Image

Image.open('CAPTCHA1.png')


#clcoding.com


Explanation: 

This code snippet demonstrates how to automatically generate an image CAPTCHA using Python. Here's a breakdown of each part:

from captcha.image import ImageCaptcha: This imports the ImageCaptcha class from the captcha.image module. This class allows you to create CAPTCHA images.

import random: This imports the random module, which is used to generate random characters for the CAPTCHA text.

image = ImageCaptcha(width=450, height=100): This initializes an instance of the ImageCaptcha class with the specified width and height for the CAPTCHA image.

generate_random_captcha_text(length=6): This is a function that generates random CAPTCHA text. It takes an optional parameter length, which specifies the length of the CAPTCHA text. By default, it generates a text of length 6.

captcha_text = generate_random_captcha_text(): This calls the generate_random_captcha_text function to generate random CAPTCHA text and assigns it to the variable captcha_text.

data = image.generate(captcha_text): This generates the CAPTCHA image using the generated text. It returns the image data.

image.write(captcha_text, 'CAPTCHA1.png'): This writes the generated CAPTCHA image to a file named "CAPTCHA1.png" with the text embedded in the image.

from PIL import Image: This imports the Image class from the Python Imaging Library (PIL) module, which is used to open and display the generated CAPTCHA image.

Image.open('CAPTCHA1.png'): This opens the generated CAPTCHA image named "CAPTCHA1.png" using the PIL library.

Overall, this code generates a random CAPTCHA text, creates an image of the text using the ImageCaptcha class, saves the image to a file, and then displays the image using PIL.

Free Top 3 Machine Learning Books 📚

 Advances in Financial Machine Learning

Machine learning (ML) is changing virtually every aspect of our lives. Today ML algorithms accomplish tasks that until recently only expert humans could perform. As it relates to finance, this is the most exciting time to adopt a disruptive technology that will transform how everyone invests for generations.

Listeners will learn how to structure big data in a way that is amenable to ML algorithms; how to conduct research with ML algorithms on that data; how to use supercomputing methods; how to backtest your discoveries while avoiding false positives. The book addresses real-life problems faced by practitioners on a daily basis and explains scientifically sound solutions using math, supported by code and examples. Listeners become active users who can test the proposed solutions in their particular setting. Written by a recognized expert and portfolio manager, this book will equip investment professionals with the groundbreaking tools needed to succeed in modern finance.


Graph-Powered Machine Learning 

Upgrade your machine learning models with graph-based algorithms, the perfect structure for complex and interlinked data.

In Graph-Powered Machine Learning, you will learn:

The lifecycle of a machine learning project
Graphs in big data platforms
Data source modeling using graphs
Graph-based natural language processing, recommendations, and fraud detection techniques
Graph algorithms
Working with Neo4J
Graph-Powered Machine Learning teaches to use graph-based algorithms and data organization strategies to develop superior machine learning applications. You’ll dive into the role of graphs in machine learning and big data platforms, and take an in-depth look at data source modeling, algorithm design, recommendations, and fraud detection. Explore end-to-end projects that illustrate architectures and help you optimize with best design practices.

Author Alessandro Negro’s extensive experience shines through in every chapter, as you learn from examples and concrete scenarios based on his work with real clients!

About the Technology

Identifying relationships is the foundation of machine learning. By recognizing and analyzing the connections in your data, graph-centric algorithms like K-nearest neighbor or PageRank radically improve the effectiveness of ML applications.

About the Audiobook

Graph-Powered Machine Learning teaches you how to exploit the natural relationships in structured and unstructured datasets using graph-oriented machine learning algorithms and tools. In this authoritative audiobook, you’ll master the architectures and design practices of graphs, and avoid common pitfalls. Author Alessandro Negro explores examples from real-world applications that connect GraphML concepts to real world tasks.

Machine Learning for Absolute Beginners: Python for Data Science, Book 3 

Featured by Tableau as the first of "7 Books About Machine Learning for Beginners."

Ready to spin up a virtual GPU instance and smash through petabytes of data? Want to add "Machine Learning" to your LinkedIn profile?

Well, hold on there.... Before you embark on your journey, there are some high-level theory and statistical principles to weave through first.

But rather than spend $30-$50 USD on a thick textbook, you may want to listen to this book first. As a clear and concise alternative, this book provides a high-level introduction to machine learning, free downloadable code exercises, and video demonstrations.

Machine Learning for Absolute Beginners Third Edition has been written and designed for absolute beginners. This means plain-English explanations and no coding experience required. Where core algorithms are introduced, clear explanations and visual examples are added to make it easy to follow along at home.

New Updated Edition

This new edition features extended chapters with quizzes, free supplementary online video tutorials for coding models in Python, and downloadable resources not included in the Second Edition.

Disclaimer: If you have passed the "beginner" stage in your study of machine learning and are ready to tackle coding and deep learning, you would be well served with a long-format textbook. If, however, you are yet to reach that Lion King moment - as a fully grown Simba looking over the Pride Lands of Africa - then this is the book to gently hoist you up and give a clear lay of the land.

In this step-by-step guide, you will learn:

How to download free datasets
What tools and machine learning libraries you need
Data scrubbing techniques, including one-hot encoding, binning and dealing with missing data
Preparing data for analysis, including k-fold Validation
Regression analysis to create trend lines
k-Means Clustering to find new relationships
The basics of Neural Networks
Bias/Variance to improve your machine learning model

Sunday 14 April 2024

What is the output of following Python Code?


 

What is the output of following Python Code? 


s = 'clcoding'

print(s[1:6][1:3])


Solution and Explanation: 


Let's break down the expression step by step:

s = 'clcoding': This assigns the string 'clcoding' to the variable s.

s[1:6]: This slices the string from index 1 (inclusive) to index 6 (exclusive), resulting in 'lcod'.

s[1:6][1:3]: This further slices the result of the previous step 'lcod' from index 1 to index 3, resulting in 'co'.

So, the output of print(s[1:6][1:3]) will be 'co'.

Python Coding challenge - Day 174 | What is the output of the following Python Code?

 

Code:

s = 'coder'

print(s[::0])

Solution and Explanation: 

n Python, the expression s[::0] raises a ValueError. This error occurs because the step value of the slice operation cannot be zero.

When using slice notation [start:stop:step], the step parameter specifies the increment between the elements. A step of zero doesn't make sense because it would mean "take every element" but without progressing through the sequence, which is undefined.

So, attempting to slice with a step of zero will result in an error. If you want to print the string 'coder', you can simply use print(s).

4 Free books to master Data Analytics

 Storytelling with Data: A Data Visualization Guide for Business Professionals  



Don't simply show your data - tell a story with it!

Storytelling with Data teaches you the fundamentals of data visualization and how to communicate effectively with data. You'll discover the power of storytelling and the way to make data a pivotal point in your story. The lessons in this illuminative text are grounded in theory but made accessible through numerous real-world examples - ready for immediate application to your next graph or presentation.

Storytelling is not an inherent skill, especially when it comes to data visualization, and the tools at our disposal don't make it any easier. This book demonstrates how to go beyond conventional tools to reach the root of your data and how to use your data to create an engaging, informative, compelling story. Specifically, you'll learn how to:

Understand the importance of context and audience

Determine the appropriate type of graph for your situation

Recognize and eliminate the clutter clouding your information

Direct your audience's attention to the most important parts of your data

Think like a designer and utilize concepts of design in data visualization

Leverage the power of storytelling to help your message resonate with your audience

Together, the lessons in this book will help you turn your data into high-impact visual stories that stick with your audience. Rid your world of ineffective graphs, one exploding 3D pie chart at a time. There is a story in your data - Storytelling with Data will give you the skills and power to tell it!


Fundamentals of Data Analytics: Learn Essential Skills, Embrace the Future, and Catapult Your Career in the Data-Driven World—A Comprehensive Guide to Data Literacy for Beginners

Gain a competitive edge in today’s data-driven world and build a rich career as a data professional that drives business success and innovation…

Today, data is everywhere… and it has become the essential building block of this modern society.

And that’s why now is the perfect time to pursue a career in data.

But what does it take to become a competent data professional?

This book is your ultimate guide to understanding the fundamentals of data analytics, helping you unlock the expertise of efficiently solving real-world data-related problems.

Here is just a fraction of what you will discover:

A beginner-friendly 5-step framework to kickstart your journey into analyzing and processing data

How to get started with the fundamental concepts, theories, and models for accurately analyzing data

Everything you ever needed to know about data mining and machine learning principles

Why business run on a data-driven culture, and how you can leverage it using real-time business intelligence analytics

Strategies and techniques to build a problem-solving mindset that can overcome any complex and unique dataset

How to create compelling and dynamic visualizations that help generate insights and make data-driven decisions

The 4 pillars of a new digital world that will transform the landscape of analyzing data

And much more.

Believe it or not, you can be terrible in math or statistics and still pursue a career in data.

And this book is here to guide you throughout this journey, so that crunching data becomes second nature to you.

Ready to master the fundamentals and build a successful career in data analytics? Click the “Add to Cart” button right now.

PLEASE NOTE: When you purchase this title, the accompanying PDF will be available in your Audible Library along with the audio.

Data Analytics for Absolute Beginners: A Deconstructed Guide to Data Literacy: Python for Data Science, Book 2

Make better decisions with this easy deconstructed guide to data analytics.

Want to add data analytics to your skill stack? Having trouble finding where to start?

Cell-by-cell, bit-by-bit, this audiobook teaches you the vocabulary, tools, and basic algorithms to think like a data scientist.

Like putting together a complex Lego set, each section connects and adds individual blocks of knowledge to build your data literacy. This linear structure to unpacking data analytics takes you from zero to confidently analyzing and discussing data problems.

Who is this audiobook for? This audiobook is ideal for anyone interested in making sense of data analytics without the assumption that you understand data science terminology or advanced math. If you've tried to learn data analytics before and failed, this audiobook is for you.

Practical approach. This audiobook takes a hands-on approach to learning. This includes practical examples, visual examples, as well as two bonus coding exercises in Python, including free video content to walk you through both exercises. By the end of the audiobook, you will have the practical knowledge to tackle real data problems in your organization or daily life.

What you will learn:

How to recognize the common data types every data scientist needs to master
Where to store your data, including big data
New trends in data analytics, including what is alternative data and why not many people know about it
How to explain the distinction between data mining, machine learning, and analytics to your colleagues
When and how to use regression analysis, classification, clustering, association analysis, and natural language processing
How to make better business decisions using data visualization and business intelligence

Data Analytics, Data Visualization & Communicating Data: 3 books in 1: Learn the Processes of Data Analytics and Data Science, Create Engaging Data Visualizations, and Present Data Effectively


Harvard Business Review called data science “the sexiest job of the 21st century,” so it's no surprise that data science jobs have grown up to 20 times in the last three years. With demand outpacing supply, companies are willing to pay top dollar for talented data professionals. However, to stand out in one of these positions, having foundational knowledge of interpreting data is essential. You can be a spreadsheet guru, but without the ability to turn raw data into valuable insights, the data will render useless. That leads us to data analytics and visualization, the ability to examine data sets, draw meaningful conclusions and trends, and present those findings to the decision-maker effectively.

Mastering this skill will undoubtedly lead to better and faster business decisions. The three audiobooks in this series will cover the foundational knowledge of data analytics, data visualization, and presenting data, so you can master this essential skill in no time. This series includes:

Everything data analytics: a beginner's guide to data literacy and understanding the processes that turns data into insights.

Beginner's guide to data visualization: how to understand, design, and optimize over 40 different charts.

How to win with your data visualizations: the five part guide for junior analysts to create effective data visualizations and engaging data stories.

These three audiobooks cover an extensive amount of information, such as:

Overview of the data collection, management, and storage processes.

Fundamentals of cleaning data.

Essential machine learning algorithms required for analysis such as regression, clustering, classification, and more....

The fundamentals of data visualization.

An in-depth view of over 40 plus charts and when to use them.

A comprehensive data visualization design guide.

Walkthrough on how to present data effectively.

And so much more!

Saturday 13 April 2024

Python Coding challenge - Day 173 | What is the output of the following Python Code?

 


Code: 

def fun(a, b):

    if a == 1:

        return b

    else:

        return fun(a - 1, a * b)

print(fun(4, 2))

Solution and Explanation: 

This code defines a recursive function fun(a, b) that takes two parameters, a and b. Let's break down how the function works:

Function Definition:

def fun(a, b):
Conditional Statement:

if a == 1:
    return b
else:
If the value of a is equal to 1, the function returns the value of b.
If a is not equal to 1, the function proceeds to the else block.
Recursion:

return fun(a - 1, a * b)
If a is not equal to 1, the function calls itself recursively with modified arguments:
a - 1 decrements the value of a by 1 in each recursive call.
a * b multiplies a with b and passes the result as the second argument.
This recursive call continues until a becomes 1.
Function Call:

print(fun(4, 2))
This line calls the fun() function with initial values of a = 4 and b = 2.
The result of the function call is printed.
Now let's see how the function operates with the given input fun(4, 2):

Initially, a = 4 and b = 2.
Since a is not equal to 1, the function enters the else block and makes a recursive call with a = 3 and b = 4 * 2 = 8.
Again, since a is not equal to 1, another recursive call is made with a = 2 and b = 3 * 8 = 24.
Once more, a recursive call is made with a = 1. Now, the base case is satisfied, and the function returns b, which is 24.
The final result of fun(4, 2) is 24, which is printed.


Remove Image Background using Python

 

from rembg import remove

from PIL import Image

input_path = 'p22.jpg'

output_path = 'p22.png'

inp = Image.open(input_path)

output = remove(inp)

output.save(output_path)

#clcoding.com

Explanantion: 

This code snippet appears to be a Python script using the rembg library to remove the background from an image. Let me break it down for you:

from rembg import remove: This line imports the remove function from the rembg library. rembg is likely a library designed for background removal from images.

from PIL import Image: This line imports the Image module from the Python Imaging Library (PIL). PIL is used for opening, manipulating, and saving many different image file formats.

input_path = 'p22.jpg': This line sets the path to the input image file named "p22.jpg". This is the image from which we want to remove the background.

output_path = 'p22.png': This line sets the path for the output image file named "p22.png". The background-removed image will be saved with this filename and format (PNG).

inp = Image.open(input_path): This line opens the input image file using PIL's Image.open() function and assigns it to the variable inp. Now inp holds the image object.

output = remove(inp): This line calls the remove() function from the rembg library and passes the input image (inp) as an argument. This function is expected to perform the background removal operation on the input image.

output.save(output_path): This line saves the background-removed image (output) to the specified output path (output_path). It's saved in PNG format due to the extension provided in the output_path.

The comments at the end (#clcoding.com) seem to indicate the source or reference of the code, possibly a website or a tutorial where this code was found.






Python library to filter and censor offensive language

 

from better_profanity import profanity

text = "What the hell is going on?"

censored_text = profanity.censor(text)

print(censored_text)  


#clcoding.com

Explanation: 

The line from better_profanity import profanity imports the profanity module from the better_profanity library. This module provides functions and utilities for filtering and censoring offensive language in text.

Here's a breakdown of the subsequent code:

text = "What the hell is going on?": This line assigns a string containing a sentence to the variable text. The sentence includes the word "hell," which is considered offensive.

censored_text = profanity.censor(text): This line uses the censor function from the profanity module to censor any profanity in the text variable. The function replaces offensive words with asterisks (*) or other censor characters.

print(censored_text): This line prints the censored version of the text to the console. In this case, since "hell" is considered offensive, it will be replaced with asterisks, resulting in a censored version of the original sentence.

So, the output of this code will be a censored version of the original text, where the offensive word "hell" is replaced with asterisks.


from better_profanity import profanity

text = "I can't believe he said that!"

has_profanity = profanity.contains_profanity(text)

print(has_profanity) 


#clcoding.com

Explanation:

The line from better_profanity import profanity imports the profanity module from the better_profanity library. This module provides functions and utilities for filtering and detecting offensive language in text.

Here's a breakdown of the subsequent code:

text = "I can't believe he said that!": This line assigns a string containing a sentence to the variable text. The sentence does not contain any explicit profanity.

has_profanity = profanity.contains_profanity(text): This line calls the contains_profanity function from the profanity module and passes the text variable as an argument. This function checks whether the provided text contains any profanity.

print(has_profanity): This line prints the result of the profanity check to the console. If the text contains any profanity, the result will be True; otherwise, it will be False.

After executing this code, the result printed to the console will indicate whether the provided text contains any profanity. Since the text "I can't believe he said that!" does not contain explicit profanity, the output will be False.



from better_profanity import profanity
custom_censor_words = ["heck", "darn", "frick"]
censor_word = profanity.load_censor_words(custom_censor_words)

#clcoding.com

Explanation:

The line from better_profanity import profanity imports the profanity module from the better_profanity library. This module provides functions and utilities for filtering and censoring offensive language in text.

Here's an explanation of the subsequent code:

custom_censor_words = ["heck", "darn", "frick"]: This line creates a list named custom_censor_words containing custom words that you want to be treated as profanity and censored.

censor_word = profanity.load_censor_words(custom_censor_words): This line calls the load_censor_words function from the profanity module and passes the custom_censor_words list as an argument. This function loads the custom censor words into the profanity filter.

However, there's a small correction here: The load_censor_words function doesn't return anything (None), so assigning its result to censor_word doesn't serve any purpose. It's primarily used to load the custom censor words into the profanity filter.

After executing this code, the profanity filter will include the custom censor words provided in the custom_censor_words list. Any occurrence of these words in the text will be censored according to the filter's settings.

Friday 12 April 2024

Python Coding challenge - Day 172 | What is the output of the following Python Code?

 

Code:

def fun(x, y):

    if x == 0:

        return y

    else:

        return fun(x - 1, x * y)

print(fun(3, 5))

Solution and Explanation: 

Let's break down the provided Python function fun(x, y) and an example call print(fun(3, 5)):

def fun(x, y):
    if x == 0:
        return y
    else:
        return fun(x - 1, x * y)

print(fun(3, 5))
Function Definition:

The function fun(x, y) takes two parameters, x and y.
Base Case:

The function checks if x is equal to 0. If it is, the function returns y. This serves as the base case for the recursive function.
Recursive Case:

If x is not equal to 0, the function calls itself recursively with x - 1 and x * y.
Recursion:

The function keeps calling itself with a decremented x until x becomes 0, each time multiplying y by the current value of x.
Example Call:

print(fun(3, 5)) calls the fun function with x = 3 and y = 5.
The function first checks if x is 0. Since it's not, it enters the recursive case.
It calls fun(2, 3 * 5), then fun(1, 2 * (3 * 5)), and finally fun(0, 1 * (2 * (3 * 5))).
When x becomes 0, it returns the accumulated value of y, which is 2 * (3 * 5) = 30.
So, the output of print(fun(3, 5)) will be 30.

Popular Posts

Categories

AI (29) Android (24) AngularJS (1) Assembly Language (2) aws (17) Azure (7) BI (10) book (4) Books (122) C (77) C# (12) C++ (82) Course (67) Coursera (195) Cybersecurity (24) data management (11) Data Science (100) Data Strucures (7) Deep Learning (11) Django (14) Downloads (3) edx (2) Engineering (14) Excel (13) Factorial (1) Finance (6) flask (3) flutter (1) FPL (17) Google (19) Hadoop (3) HTML&CSS (46) IBM (25) IoT (1) IS (25) Java (93) Leet Code (4) Machine Learning (46) Meta (18) MICHIGAN (5) microsoft (4) Pandas (3) PHP (20) Projects (29) Python (837) Python Coding Challenge (279) Questions (2) R (70) React (6) Scripting (1) security (3) Selenium Webdriver (2) Software (17) SQL (41) UX Research (1) web application (8)

Followers

Person climbing a staircase. Learn Data Science from Scratch: online program with 21 courses