import numpy as np
X = np.array([1,2,3,4])
print(X)
print(X.shape)
print(X.shape[0])
print(X.size)
# print(X.shape[1])
# print(X.T)
# print(X.T.shape)
print(X.reshape(4,1))
print(X.reshape(4,1).shape)
print(X.reshape(4,1).size)
print(X.reshape(4,1).T)
print(X.reshape(4,1).T.shape)
print((X.reshape(4,1).T.size))
print(X.reshape(4,1).T.shape[0])
print(X.reshape(4,1).T.shape[1])
print(np.dot(X,X.reshape(4,1)))
print(np.dot(X,X.reshape(4,1)).shape)
print()
print(np.dot(X.reshape(4,1).T,X.reshape(4,1)))
print(np.dot(X.reshape(4,1).T,X.reshape(4,1)).shape)
print()
print(np.dot(X,X.reshape(4,1)))
print(np.dot(X,X.reshape(4,1)).shape)
print()
print(np.dot(X,X))
print(np.dot(X,X).shape)
print()
Y = np.arange(1,13).reshape(3,4)
print(Y)
print(Y.shape)
print(Y.size)
print(np.mean(Y))