Obtenha o primeiro caractere de uma string python simples:
>>> mystring = "hello"
>>> print(mystring[0])
h
>>> print(mystring[:1])
h
>>> print(mystring[3])
l
>>> print(mystring[-1])
o
>>> print(mystring[2:3])
l
>>> print(mystring[2:4])
ll
Obtenha o primeiro caractere de uma string na primeira posição de uma lista Python:
>>> myarray = []
>>> myarray.append("blah")
>>> myarray[0][:1]
'b'
>>> myarray[0][-1]
'h'
>>> myarray[0][1:3]
'la'
Muitas pessoas se enganam aqui porque estão misturando operadores de objetos de lista do Python e operadores de objetos Numpy ndarray:
As operações numpy são muito diferentes das operações de lista python.
Enrole a sua cabeça em torno dos dois mundos conflitantes da "lista de segmentação, indexação, subconjunto" do Python e, em seguida, do "mascaramento, divisão, subconjunto, indexação e indexação sofisticada aprimorada do numpy" do Numpy.
Esses dois vídeos esclareceram as coisas para mim:
"Losing your Loops, Fast Numerical Computing with NumPy" por PyCon 2015:
https://youtu.be/EEUXKG97YRw?t=22m22s
"NumPy Beginner | SciPy 2016 Tutorial" por Alexandre Chabot LeClerc:
https://youtu.be/gtejJ3RCddE?t=1h24m54s