2. Which of the following is the correct way to call np.cov() on two 1D arrays x and y?
easy
A. np.cov(x, axis=1)
B. np.cov(x, y)
C. np.cov(x + y)
D. np.cov([x + y])
Solution
Step 1: Understand input format for np.cov()
np.cov(m, y=None) where for two variables, pass two 1D arrays as m=x, y=y.
Step 2: Check correct input structure
Passing x, y directly uses the two-argument form of np.cov().
Final Answer:
np.cov(x, y) -> Option B
Quick Check:
np.cov(x, y) for two 1D arrays [OK]
Hint: np.cov(x, y) for two 1D arrays [OK]
Common Mistakes:
Passing summed arrays
Using wrong axis parameter
Passing list containing summed array
3. What is the output of this code?
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
cov_matrix = np.cov([x, y])
print(cov_matrix)
medium
A. [[1.5 1.5]
[1.5 1.5]]
B. [[0.66666667 0.66666667]
[0.66666667 0.66666667]]
C. [[1. 1.]
[1. 1.]]
D. [[2. 2.]
[2. 2.]]
Solution
Step 1: Calculate covariance of x and y
x mean=2, deviations=[-1,0,1], sum of squared deviations=2, np.cov uses ddof=1 by default (unbiased estimator), so variance = 2/(3-1) = 1. Same for covariance.
Step 2: Understand np.cov() output
np.cov([x, y]) returns 2x2 matrix with 1.0 everywhere.
Final Answer:
[[1. 1.]
[1. 1.]] -> Option C
Quick Check:
np.cov uses ddof=1 by default (unbiased) [OK]
Hint: np.cov() divides by (n-1) by default [OK]
Common Mistakes:
Using biased variance (/n=3)
Misreading np.cov() output shape
Assuming default normalization is biased
4. Identify the error in this code snippet:
import numpy as np
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
z = np.array([7, 8, 9])
cov_matrix = np.cov(x, y, z)
print(cov_matrix)
medium
A. np.cov() requires a single array or a list of arrays, not separate arrays
B. x and y must be reshaped to 2D arrays before np.cov()
C. np.cov() cannot handle integer arrays
D. Missing axis parameter in np.cov() call
Solution
Step 1: Check np.cov() input requirements
np.cov() expects either a single 2D array or a list/array of variables, not multiple separate arrays as arguments.
Step 2: Identify correct input format
Passing x, y, z as separate arguments causes TypeError; correct is np.cov([x, y, z]).
Final Answer:
np.cov() requires a single array or a list of arrays, not separate arrays -> Option A
Quick Check:
Input must be single array or list [OK]
Hint: Pass variables as list, not separate args to np.cov() [OK]