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)]