Lecture 4 – Strings and Arrays

DSC 10, Fall 2022

Announcements

Agenda

Resources

Strings

Strings

String arithmetic

When using the + symbol between two strings, the operation is called "concatenation".

String methods

Special characters in strings

Single quotes and double quotes are usually interchangeable, except when the string itself contains a single or double quote.

Aside: print

Type conversion to and from strings

Concept Check ✅ – Answer at cc.dsc10.com

Assume you have run the following statements:

x = 3
y = '4'
z = '5.6'

Choose the expression that will be evaluated without an error.

A. x + y

B. x + int(y + z)

C. str(x) + int(y)

D. str(x) + z

E. All of them have errors

Lists

Motivation

How would we store the temperatures for each of the first 6 days in the month of September?

Our best solution right now is to create a separate variable for each day.

This technically allows us to do things like compute the average temperature through the first 6 days:

avg_temperature = 1/6 * (
    temperature_on_sept_01
    + temperature_on_sept_02
    + temperature_on_sept_03
    + ...)

Imagine a whole month's data, or a whole year's data. It seems like we need a better solution.

Lists in Python

In Python, a list is used to store multiple values in a single value/variable. To create a new list from scratch, we use [square brackets].

Notice that the elements in a list don't need to be unique!

Lists make working with sequences easy!

To find the average temperature, we just need to divide the sum of the temperatures by the number of temperatures recorded:

Types

The type of a list is... list.

Within a list, you can store elements of different types.

There's a problem...

Arrays

NumPy

Arrays

Think of NumPy arrays (just "arrays" from now on) as fancy, faster lists.

To create an array, we pass a list as input to the np.array function.

Positions

When people stand in a line, each person has a position.

Similarly, each element of an array (and list) has a position.

Accessing elements by position

Types

Earlier in the lecture, we saw that lists can store elements of multiple types.

This is not true of arrays – all elements in an array must be of the same type.

Array-number arithmetic

Arrays make it easy to perform the same operation to every element. This behavior is formally known as "broadcasting".

Note: In none of the above cells did we actually modify temperature_array! Each of those expressions created a new array.

To actually change temperature_array, we need to reassign it to a new array.

Element-wise arithmetic

Example: TikTok views 🎬

Baby Panda made a series five TikTok videos called "A Day In the Life of a Data Science Mascot". The number of views they've received on these videos are stored in the array views below.

Some questions:

What was their average view count?

How many views did their most and least popular videos receive?

How many views above average did each of their videos receive? How many views above average did their most viewed video receive?

It has been estimated that TikTok pays their creators \$0.03 per 1000 views. If this is true, how many dollars did Baby Panda earn on their most viewed video?

Ranges

Motivation

We often find ourselves needing to make arrays like this:

There needs to be an easier way to do this!

Ranges

Activity

🎉 Congrats! 🎉 You won the lottery 💰. Here's how your payout works: on the first day of September, you are paid \$0.01. Every day thereafter, your pay doubles, so on the second day you're paid \\$0.02, on the third day you're paid \$0.04, on the fourth day you're paid \\$0.08, and so on.

September has 30 days.

Write a one-line expression that uses the numbers 2 and 30, along with the function np.arange and the method .sum(), that computes the total amount in dollars you will be paid in September.

Summary, next time

Summary

Next time

We'll learn about how to use Python to work with real-world tabular data.