#!/usr/bin/python3.8

import numpy as np
import random

def create_list(n,m):
	return [[random.uniform(0,10) for i in range(m)] for j in range(n)]

def create_array(n,m,lst=None):
	if (lst):
		return np.array(lst, dtype='float32')
	else:
		return np.random.uniform(0,10,(n,m)).astype(np.float32)

def mstore(arr):
	try:
		np.savetxt("data.csv",arr,delimiter=",",fmt="%.3f")
	except Exception as e:
		print(e)

def mload():
	try:
		return np.genfromtxt("data.csv",delimiter=",")
	except Exception as e:
		print(e)

def cal_det(arr):
	return np.linalg.det(arr)

def calc_inv(arr):
	return np.linalg.inv(arr)

def main():
	n=int(eval(input("Give array dimetions N=")))
	m=int(eval(input("M=")))
	a=create_array(n,m)
	mstore(a)
	b=mload()
	print(b)
#	print (a.shape)
#	print (a)
#	b=create_list(n,m)
#	print(b)
#	c=create_array(2,3,b)
#	print(c)
#	mstore(c)
#	d=mload()
#	print(d)
#	print(d.shape)
	for line in range(a.shape[0]):
		for col in range(a.shape[1]):
			print(f'{a[line][col]}',end="\t")
		print("")
	c=cal_det(a)
	print(c)
	d=calc_inv(a)
	print(d)

if __name__=="__main__":
	main()
