+91 81900 98289

This K-means lesson is for a beginner. Read the short notes, run each example, then change one name or number and run it again.

K-means places k centres and assigns each point to the nearest centre. The centres then move to the average of their points.

The example does one assignment step with two starting centres.

Example 1: Start here

You choose k. A bad k splits one natural group or merges two.

points = [1, 2, 9, 10] # a list; the values stay in this order centers = [1, 10] # a list; the values stay in this order groups = {1: [], 10: []} # a dictionary; each key has one value for point in points: # repeat the indented lines once per value center = min(centers, key=lambda item: abs(point - item)) # the smallest value groups[center].append(point) # add one item at the end of the list print(groups)

Example 2: Add two rows

K-means applies one operation to every number. zip pairs the rows, and the list keeps each sum.

left = [1, 2, 33] # a list; the values stay in this order right = [10, 20, 30] # a list; the values stay in this order print([a + b for a, b in zip(left, right)]) # pair the lists, then combine each pair

Example 3: Average a column

The average is the total divided by how many numbers you have. That is the same summary a statistics page starts with.

scores = [70, 33, 90] # a list; the values stay in this order print(sum(scores) / len(scores)) # len counts the items

Example 4: Keep values above a line

A cutoff drops the low values. Change 80 and run the example again to see who remains.

scores = [70, 33, 90] # a list; the values stay in this order print([score for score in scores if score >= 80]) # keep the items that pass the test
You choose k. A bad k splits one natural group or merges two.
Call Now 81900 98289