How can we access the value of a matrix in Python, if I pass its column and row name as input in Python code.
For Example – If I input A as column and B as row, then from the matrix table, I should get its A and B map value.
So far I tried this code, but I was unable to figure out how to get its value:
import numpy as np
import pandas as pd
input1= 'B'
input2= 'B'
numpyArray = np.array([[5, 4, 3, 3, 2, 2],
[4, 3, 2, 3, 2, 1],
[3, 3, 1, 2, 1, 1],
[2, 2, 1, 1, 1, 1]])
panda_df = pd.DataFrame(data=numpyArray, index=["A", "B", "C", "D"],
columns=["A", "B", "C", "D", "E", "F"])
print(panda_df)
Also, is it possible to achieve this solution in python 2.7?
Advertisement
Answer
Taking advantage of your created dataframe, just select according to the inputs:
panda_df[input1][input2]
But you can avoid the dataframe creation by creating a translation from letters to indexes using ord (assuming the inputs will always be capitalized letters, starting from A):
def letter_to_i(letter):
"""
A -> 0, B -> 1, ...
"""
return ord(letter) - ord('A')
And now index the array directly:
numpyArray[letter_to_i(input1)][letter_to_i(input2)]