numpy.loadtxt('iris.data.txt', delimiter = ',', converters ={4:read_label2})

data in iris.data.txt file

such as:

4.6,3.2,1.4,0.2,Iris-setosa
5.3,3.7,1.5,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
6.4,3.2,4.5,1.5,Iris-versicolor

######################################################################

import numpy as np
import matplotlib.pyplot as plt

label_set = (
    b'Iris-setosa',
    b'Iris-versicolor',
    b'Iris-virginica',
)  #tuple

def read_label2(label):
    return label_set.index(label)

#The last column that gives the label of each point is a string that can take three possible values—Iris-virginica, Iris-versicolor, and Iris-Vertosa.
data = np.loadtxt('iris.data.txt', delimiter = ',', converters ={4:read_label2})

color_set = ('.00', '.50', '.75')
color_list = [color_set[int(label)] for label in data[:,4]
             ]
plt.scatter(data[:,0], data[:,1], color=color_list)
plt.show()

numpy.loadtxt('iris.data.txt', delimiter = ',', converters ={4:read_label2})

data[:4] 

output:

array([[5.1, 3.5, 1.4, 0.2, 0. ],
       [4.9, 3. , 1.4, 0.2, 0. ],
       [4.7, 3.2, 1.3, 0.2, 1. ],
       [4.6, 3.1, 1.5, 0.2, 1. ]])