Spaces:
Runtime error
Runtime error
Setup | |
temperature = 0.7, topP = 0.95, turns = 10 | |
A0: change example | |
A1: change logits(decimal places, array, etc) | |
A2: change output type (array -> dict, etc) | |
A3: analogy | |
A4: dimension(index) involved | |
A5: inverted operation | |
A6: order | |
A7: ±condition/operation | |
combinations involved, only show the highest level. | |
MAP | |
1. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0.7 | |
A1 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
0 | |
1 | |
1 | |
1 | |
1 | |
0.4 | |
A3 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
0.4 | |
Origin: | |
Problem: | |
I want to multiply the columns of A with the elements in X in the following order: the first element of X multiplies to the first column of A, the second element to the second column and so on. | |
For example, given: | |
import numpy as np | |
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ] | |
A=np.array([[0, 1, 1, 1, 0], | |
[1, 0, 1, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0]]) | |
I want to produce: | |
array([[0, 2.464, 4.991, 5.799, 0], | |
[10, 0, 4.991, 0, 0], | |
[10, 2.464, 0, 5.799, 0], | |
[10, 0, 4.991, 0, 0], | |
[0, 2.464, 4.991, 5.799, 0]]) | |
A: | |
<code> | |
import numpy as np | |
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ]) | |
A=np.array([[0, 1, 1, 1, 0], | |
[1, 0, 1, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(B) | |
</code> | |
test: | |
ans = A * X | |
try: | |
np.testing.assert_array_equal(ans, B) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A1: | |
Problem: | |
I want to multiply the columns of A with the elements in X in the following order: the first element of X multiplies to the first column of A, the second element to the second column and so on. | |
For example, given: | |
import numpy as np | |
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ] | |
A=np.array([[0, 1, 1, 1, 0], | |
[1, 0, 1, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0]]) | |
I want to produce: | |
array([[0, 2.464, 4.991, 5.799, 0], | |
[10, 0, 4.991, 0, 0], | |
[10, 2.464, 0, 5.799, 0], | |
[10, 0, 4.991, 0, 0], | |
[0, 2.464, 4.991, 5.799, 0]]) | |
Note that the result should be kept 3 decimal places just as the example. | |
A: | |
<code> | |
import numpy as np | |
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ]) | |
A=np.array([[0, 1, 1, 1, 0], | |
[1, 0, 1, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(B) | |
</code> | |
test: | |
ans = np.round(A * X, 3) | |
try: | |
np.testing.assert_array_equal(ans, B) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A3: | |
Problem: | |
I want to multiply the columns of A with the elements in X in the following order: the first element of X multiplies to the first row of A, the second element to the second row and so on. | |
For example, given: | |
import numpy as np | |
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ] | |
A=np.array([[0, 1, 1, 1, 0], | |
[1, 0, 1, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0]]) | |
I want to produce: | |
array([[0, 2.464, 4.991, 5.799, 0], | |
[10, 0, 4.991, 0, 0], | |
[10, 2.464, 0, 5.799, 0], | |
[10, 0, 4.991, 0, 0], | |
[0, 2.464, 4.991, 5.799, 0]]) | |
Note that the result should be kept 3 decimal places just as the example. | |
A: | |
<code> | |
import numpy as np | |
X=np.array([10. , 2.46421304, 4.99073939, 5.79902063, 0. ]) | |
A=np.array([[0, 1, 1, 1, 0], | |
[1, 0, 1, 0, 1], | |
[1, 1, 0, 1, 1], | |
[1, 0, 1, 0, 1], | |
[0, 1, 1, 1, 0]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(B) | |
</code> | |
Test: | |
ans = np.round((A.T * X).T, 3) | |
try: | |
np.testing.assert_array_equal(ans, B) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
2. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have a NumPy record array of floats: | |
ar = np.array([(238.03, 238.0, 237.0), | |
(238.02, 238.0, 237.01), | |
(238.05, 238.01, 237.0)], | |
dtype=[('A', 'f'), ('B', 'f'), ('C', 'f')]) | |
How can I determine min from each column of this record array? | |
desired: | |
[238.02 ,238. ,237. ] | |
A: | |
<code> | |
import numpy as np | |
ar = np.array([(238.03, 238.0, 237.0), | |
(238.02, 238.0, 237.01), | |
(238.05, 238.01, 237.0)], | |
dtype=[('A', 'f'), ('B', 'f'), ('C', 'f')]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(result) | |
</code> | |
Test: | |
ar_view = ar.view((ar.dtype[0], len(ar.dtype.names))) | |
ans = ar_view.min(axis=0) | |
try: | |
np.testing.assert_array_equal(ans, result) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
3. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
1 | |
0 | |
1 | |
0 | |
1 | |
1 | |
0 | |
0 | |
0 | |
1 | |
0.5 | |
A2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
0.9 | |
Origin: | |
Problem: | |
Let x be an array [2, 2, 1, 5, 4, 5, 1, 2, 3]. Get two arrays of unique elements and their counts. | |
A: | |
<code> | |
import numpy as np | |
x = np.array([2, 2, 1, 5, 4, 5, 1, 2, 3]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(u, indices) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(u, np.array([1, 2, 3, 4, 5])) | |
np.testing.assert_array_equal(indices, np.array([2, 3, 1, 1, 2])) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A2: | |
Problem: | |
Let x be an array [2, 2, 1, 5, 4, 5, 1, 2, 3]. Get two arrays of unique elements and their counts. | |
Desired output(dict): | |
{1: 2, 2: 3, 3: 1, 4: 1, 5: 2} | |
A: | |
<code> | |
import numpy as np | |
x = np.array([2, 2, 2, 1, 5, 4, 5, 1, 2, 3]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(result) | |
</code> | |
test: | |
try: | |
assert result == {2: 4, 1: 2, 5: 2, 4: 1, 3: 1} | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
4. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Using NumPy, complete the function below. The function should create and return the following 2-D array. You must find a way to generate the array without typing it explicitly: | |
[[1, 6, 11], | |
[2, 7, 12], | |
[3, 8, 13], | |
[4, 9, 14], | |
[5, 10, 15]] | |
A: | |
<code> | |
import numpy as np | |
def create_array(): | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
return result | |
</code> | |
test: | |
try: | |
np.testing.assert_array_equal(create_array(), np.array([[1,6,11],[2,7,12],[3,8,13],[4,9,14],[5,10,15]])) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
5. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Complete the function below. The function must return an array that contains the third column of the array "original" which is passed as an argument. The argument must be a 2-D array. If the argument is invalid, return None. | |
A: | |
<code> | |
import numpy as np | |
def new_array_second_column(original): | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
return result | |
</code> | |
Test: | |
case = np.arange(16)[1:].reshape((3,5)).T | |
try: | |
np.testing.assert_array_equal(new_array_second_column(case), np.array([[11],[12],[13],[14],[15]])) | |
np.testing.assert_array_equal(new_array_second_column(np.array([1,2,3])), None) | |
np.testing.assert_array_equal(new_array_second_column(np.array([[1,2],[4,5],[7,8]])), None) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
6. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have an array that looks like below: | |
array([[0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 2], [3, 3, 3, 3, 3, 3, 3, 3], [4, 4, 4, 4, 4, 4, 4, 4], [5, 5, 5, 5, 5, 5, 5, 5], [6, 6, 6, 6, 6, 6, 6, 6], [7, 7, 7, 7, 7, 7, 7, 7]]) | |
How can I use reshape to divide it into 4 chucks, such that it looks like | |
array([[[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], [[0, 0, 0, 0], [1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]], [[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7]], [[4, 4, 4, 4], [5, 5, 5, 5], [6, 6, 6, 6], [7, 7, 7, 7]]]) | |
A: | |
<code> | |
import numpy as np | |
a = np.arange(8)[:,None].repeat(8,axis=1) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
b = a.reshape(2,4,2,4).transpose(0,2,1,3) | |
try: | |
np.testing.assert_array_equal(ans, b) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
7. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
1 | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
0.4 | |
A4 | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
0.2 | |
Origin: | |
Problem: | |
I have a numpy array of shape (3, 3, k), where the length k is fixed. The array was processed to a flatten one dimensional one with: | |
mat2 = numpy.transpose(data, (1, 0, 2)).flatten('C') | |
How do I reverse this transpose / flattening process to get the original (3, 3, k) shape and ordering of the data array? | |
A: | |
<code> | |
import numpy as np | |
k = 10 | |
a = np.linspace(0, 89, 90).reshape((3, 3, k)) | |
b = np.transpose(a, (1, 0, 2)).flatten('C') | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans.shape) | |
</code> | |
test: | |
try: | |
assert id(ans) != id(a) | |
np.testing.assert_array_equal(ans, a) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A4: | |
Problem: | |
I have a numpy array of shape (3, 3, k), where the length k is fixed. The array was processed to a flatten one dimensional one with: | |
mat2 = numpy.transpose(data, (1, 2, 0)).flatten('C') | |
How do I reverse this transpose / flattening process to get the original (3, 3, k) shape and ordering of the data array? | |
A: | |
<code> | |
import numpy as np | |
k = 10 | |
a = np.linspace(0, 89, 90).reshape((3, 3, k)) | |
b = np.transpose(a, (1, 2, 0)).flatten('C') | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans.shape) | |
</code> | |
test: | |
try: | |
assert id(ans) != id(a) | |
np.testing.assert_array_equal(ans, a) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
8. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
1 | |
1 | |
1 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0.9 | |
A5 | |
1 | |
0 | |
1 | |
1 | |
0 | |
1 | |
1 | |
0 | |
1 | |
1 | |
1 | |
0.7 | |
Origin: | |
Problem: | |
I'm generating matrix representations of images with height*width size, and I need to transform them into a vector of pixels. To generate the images, I'm using the following instruction | |
np.array([[np.random.randint(0, 255, 3) for dummy_row in range(height)] for dummy_col in range(width)]) | |
e.g., (2x2) image | |
array([[[132, 235, 40], [234, 1, 160]], [[ 69, 108, 218], [198, 179, 165]]]) | |
when I'm requiring | |
array([[132, 235, 40], [234, 1, 160], [69, 108, 218], [198, 179, 165]]) | |
A: | |
<code> | |
import numpy as np | |
def f(arr): | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
return result | |
</code> | |
tset: | |
a = np.array([[[132, 235, 40], [234, 1, 160]], [[ 69, 108, 218], [198, 179, 165]]]) | |
b = np.array([[132, 235, 40], [234, 1, 160], [69, 108, 218], [198, 179, 165]]) | |
try: | |
np.testing.assert_array_equal(f(a), b) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A5: | |
Problem: | |
I'm generating matrix representations of images with height*width size, and I need to transform them into a vector of pixels. To generate the images, I'm using the following instruction | |
e.g., (2x2) image | |
array([[132, 235, 40], [234, 1, 160], [69, 108, 218], [198, 179, 165]]) | |
when I'm requiring | |
array([[[132, 235, 40], [234, 1, 160]], [[ 69, 108, 218], [198, 179, 165]]]) | |
A: | |
<code> | |
import numpy as np | |
def f(arr): | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
return result | |
</code> | |
tset: | |
a = np.array([[[132, 235, 40], [234, 1, 160]], [[ 69, 108, 218], [198, 179, 165]]]) | |
b = np.array([[132, 235, 40], [234, 1, 160], [69, 108, 218], [198, 179, 165]]) | |
try: | |
np.testing.assert_array_equal(f(b), a) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
9. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
1 | |
1 | |
1 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0.9 | |
A4 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have a df like this: | |
import pandas as pd | |
a=[['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3'], ] | |
df = pd.DataFrame.from_records(a[0:],columns=a[0]) | |
I want to flatten the df so it is one continuous list like so: | |
['1/2/2014', 'a', '6', 'z1', '1/2/2014', 'a', '3', 'z1','1/3/2014', 'c', '1', 'x3'] | |
A: | |
<code> | |
import pandas as pd | |
import numpy as np | |
a=[['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3'], ] | |
df = pd.DataFrame.from_records(a[0:],columns=a[0]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(df.to_numpy().flatten(),ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A4: | |
Problem: | |
I have a df like this: | |
import pandas as pd | |
a=[['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3'], ] | |
df = pd.DataFrame.from_records(a[0:],columns=a[0]) | |
I want to flatten the df so it is one continuous list like so: | |
['1/2/2014', '1/2/2014', '1/3/2014', 'a', 'a', 'c', '6', '3', '1', 'z1', 'z1', 'x3'] | |
A: | |
<code> | |
import pandas as pd | |
import numpy as np | |
a=[['1/2/2014', 'a', '6', 'z1'], ['1/2/2014', 'a', '3', 'z1'], ['1/3/2014', 'c', '1', 'x3'], ] | |
df = pd.DataFrame.from_records(a[0:],columns=a[0]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(df.to_numpy().T.flatten(),ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
10. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
1 | |
0 | |
0 | |
1 | |
0.2 | |
A4 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I would like to find a way to quickly manipulate an array of arrays in Numpy like this one, which has a shape of (10,): | |
[array([0, 1, 3]) ,array([0, 1, 7]), array([2]), array([0, 3]), array([4]), array([5]), array([6]) ,array([1, 7]), array([8]), array([9])] | |
For instance, I'd like to compute the total number of array elements, which is 16 for the array above, but without doing a for loop since in practice my "nested array" will be quite large. | |
A: | |
<code> | |
import numpy as np | |
from numpy import array | |
a = [array([0, 1, 3]) ,array([0, 1, 7]), array([2]), array([0, 3]), array([4]), | |
array([5]), array([6]) ,array([1, 7]), array([8]), array([9])] | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(ans,len(np.concatenate(a).ravel())) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for elimination | |
A4: | |
Problem: | |
I would like to find a way to quickly manipulate an array of arrays in Numpy like this one, which has a shape of (10,): | |
[array([0, 1, 3]) ,array([[0, 1, 7]]), array([2]), array([[0, 3]]), array([4]), array([5]), array([6]) ,array([1, 7]), array([8]), array([9])] | |
For instance, I'd like to compute the total number of array elements, but without doing a for loop since in practice my "nested array" will be quite large. | |
A: | |
<code> | |
import numpy as np | |
from numpy import array | |
a = [array([0, 1, 3]) ,array([[0, 1, 7]]), array([2]), array([[0, 3]]), array([4]), | |
array([5]), array([6]) ,array([1, 7]), array([8]), array([9])] | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = map(lambda x: x.flatten(), a) | |
result = sum(map(len, a)) | |
try: | |
assert result == ans | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for elimination | |
11. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
1 | |
1 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
0.3 | |
A1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have an array, R. I would like to remove elements corresponding to indices in Remove and then flatten them with the remaining elements. The desired output is attached. | |
R=np.array([[1.05567452e+11, 1.51583103e+11, 5.66466172e+08], | |
[6.94076420e+09, 1.96129124e+10, 1.11642674e+09], | |
[1.88618492e+10, 1.73640817e+10, 4.84980874e+09]]) | |
Remove = [(0, 1),(0,2)] | |
R1 = R.flatten() | |
print([R1]) | |
The desired output is | |
array([1.05567452e+11, 6.94076420e+09, 1.96129124e+10, 1.11642674e+09, | |
1.88618492e+10, 1.73640817e+10, 4.84980874e+09]) | |
A: | |
<code> | |
import numpy as np | |
R = np.array([[1.05567452e+11, 1.51583103e+11, 5.66466172e+08], | |
[6.94076420e+09, 1.96129124e+10, 1.11642674e+09], | |
[1.88618492e+10, 1.73640817e+10, 4.84980874e+09]]) | |
Remove = [(0, 1), (0, 2)] | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = np.array([1.05567452e+11,6.94076420e+09,1.96129124e+10,1.11642674e+09, | |
1.88618492e+10, 1.73640817e+10, 4.84980874e+09]) | |
try: | |
np.testing.assert_array_equal(a, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A1: | |
Problem: | |
I have an array, R. I would like to remove elements corresponding to indices in Remove and then flatten them with the remaining elements. The desired output is attached. | |
R=np.array([[1.05567452, 1.51583103, 5.66466172], | |
[6.94076420, 1.96129124, 1.11642674], | |
[1.88618492, 1.73640817, 4.84980874]]) | |
Remove = [(0, 1),(0,2)] | |
R1 = R.flatten() | |
print([R1]) | |
and I want to just keep 2 decimal places. | |
The desired output is | |
array([1.06, 6.94, 1.96, 1.12, 1.89, 1.74, 4.85]) | |
A: | |
<code> | |
import numpy as np | |
R = np.array([[1.05567452, 1.51583103, 5.66466172], | |
[6.94076420, 1.808484, 1.11642674], | |
[1.88618492, 1.73640817, 4.84980874]]) | |
Remove = [(0, 1), (0, 2)] | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = np.array([1.06, 6.94, 1.81, 1.12, 1.89, 1.74, 4.85]) | |
try: | |
np.testing.assert_array_equal(a, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
12. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
0 | |
1 | |
0.5 | |
A4 | |
0 | |
0 | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
Now I have a 3D numpy array with shape (2,3,4) as follows: | |
[[[ 0 1 2 3] | |
[ 4 5 6 7] | |
[ 8 9 10 11]] | |
[[12 13 14 15] | |
[16 17 18 19] | |
[20 21 22 23]]] | |
Now, I want to reshape the array to (2,4,3) by swapping the last 2 dimensions of the array as follows: | |
[[[ 0 4 8] | |
[ 1 5 9] | |
[ 2 6 10] | |
[ 3 7 11]] | |
[[12 16 20] | |
[13 17 21] | |
[14 18 22] | |
[15 19 23]]] | |
A: | |
<code> | |
import numpy as np | |
arr = np.array([[[ 0 , 1, 2, 3], [ 4 , 5, 6, 7], [ 8 , 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = np.transpose(arr, axes=(0, 2, 1)) | |
try: | |
np.testing.assert_array_equal(a, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A4: | |
Problem: | |
Now I have a 3D numpy array with shape (2,3,4) as follows: | |
[[[ 0 1 2 3] | |
[ 4 5 6 7] | |
[ 8 9 10 11]] | |
[[12 13 14 15] | |
[16 17 18 19] | |
[20 21 22 23]]] | |
Now, I want to reshape the array by swapping the axes of the array as follows: | |
[[[ 0, 4, 8], | |
[12, 16, 20]], | |
[[ 1, 5, 9], | |
[13, 17, 21]], | |
[[ 2, 6, 10], | |
[14, 18, 22]], | |
[[ 3, 7, 11], | |
[15, 19, 23]]] | |
A: | |
<code> | |
import numpy as np | |
arr = np.array([[[ 0 , 1, 2, 3], [ 4 , 5, 6, 7], [ 8 , 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = np.transpose(arr, axes=(2, 0, 1)) | |
try: | |
np.testing.assert_array_equal(a, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
13. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
I have a numpy array x = np.array([145100, [ 1,2,3 ], [6,5,4]]) and I wish to ravel it to this: [145100, 1,2,3 , 6,5,4] | |
I tried this, but it didn't give any results: | |
x = np.ravel(x) | |
As the shape was still (3,) instead of (5,). What am I missing? | |
A: | |
<code> | |
import numpy as np | |
x = np.array([145100, [1, 2, 3], [6,5,4]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = np.hstack(x) | |
try: | |
np.testing.assert_array_equal(a, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
14. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
1 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
0 | |
0 | |
1 | |
0.2 | |
Origin: | |
Problem: | |
I have an array H of dimension MxN, and an array A of dimension M . I want to scale H rows with array A. I do it this way, taking advantage of element-wise behavior of Numpy | |
H = numpy.swapaxes(H, 0, 1) | |
H /= A | |
H = numpy.swapaxes(H, 0, 1) | |
It works, but the two swapaxes operations are not very elegant, and I feel there is a more elegant and concise way to achieve the result, without creating temporaries. Would you tell me how ? | |
A: | |
<code> | |
import numpy as np | |
H = np.array([[ 1.05550870e+00, -1.54640644e-01, 2.01796906e+00], | |
[6.59741375e-02, 4.69242500e-01, -5.57339470e-03], | |
[-2.12376646e-01, -9.17792113e-01, -1.20153176e+00], | |
[3.68068789e-01, -9.98131619e+00, -1.14438249e+01]]) | |
A = np.array([ 1.1845468 , 1.30376536, -0.44912446, 0.04675434]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
a = H/A[:, None] | |
try: | |
np.testing.assert_array_equal(a, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
15. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
I am trying to convert a string into n-dimensioned numpy array (x, 4, 4). Basic requirement is a 4x4 array with column major filling of values. We will use as many 4x4 arrays as per the length of the input string. For example if my string is: | |
'A quick brown fox jumps over dog' | |
The resultant array should look like this: | |
[[['A' 'i' 'b' 'n'] | |
[' ' 'c' 'r' ' '] | |
['q' 'k' 'o' 'f'] | |
['u' ' ' 'w' 'o']] | |
[['x' 'm' 'o' ' '] | |
[' ' 'p' 'v' 'd'] | |
['j' 's' 'e' 'o'] | |
['u' ' ' 'r' 'g']]] | |
Note that instead of the conventional row-first filling of values requirement is for the filling to be column first within the 4x4 subarray. | |
A: | |
<code> | |
import numpy as np | |
string = 'A quick brown fox jumps over dog' | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
test: | |
matrix2 = np.array(list(string)).reshape(-1,4,4).swapaxes(1,2) | |
try: | |
np.testing.assert_array_equal(matrix2, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
16. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Consider the following arrays: | |
a = np.array([0,1])[:,None] | |
b = np.array([1,2,3]) | |
print(a) | |
array([[0], | |
[1]]) | |
print(b) | |
b = np.array([1,2,3]) | |
Is there a simple way to concatenate these two arrays in a way that the latter is broadcast, in order to obtain the following? | |
array([[0, 1, 2, 3], | |
[1, 1, 2, 3]]) | |
A: | |
<code> | |
import numpy as np | |
a = np.array([0,1])[:,None] | |
b = np.array([1,2,3]) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
test: | |
b_new = np.broadcast_to(b,(a.shape[0],b.shape[0])) | |
c = np.concatenate((a,b_new),axis=1) | |
try: | |
np.testing.assert_array_equal(c, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
17. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
0 | |
1 | |
1 | |
0 | |
1 | |
1 | |
0 | |
1 | |
0 | |
1 | |
0.6 | |
A4 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
Is there a Pythonic way to calculate the array z without using the loop? | |
import numpy as np | |
x = np.array([[1, 2, 3], [6, 7, 8]]) | |
y = np.array([5, 8]) | |
z = np.array([x[i] * y[i] for i in range(0, len(x))]) | |
A: | |
<code> | |
import numpy as np | |
x = np.array([[1, 2, 3], [6, 7, 8]]) | |
y = np.array([5, 8]) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
test: | |
z = x * np.expand_dims(y, 1) | |
try: | |
np.testing.assert_array_equal(z, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
A0: | |
Problem: | |
Is there a Pythonic way to calculate the array z without using the loop? | |
import numpy as np | |
x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]]) | |
y = np.array([5, 8, 10]) | |
z = np.array([x[i] * y[i] for i in range(0, len(x))]) | |
A: | |
<code> | |
import numpy as np | |
x = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]]) | |
y = np.array([5, 8, 10]) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
z = x * np.expand_dims(y, 1) | |
try: | |
np.testing.assert_array_equal(z, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
18. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have a table in a Python script with numpy in the following shape: | |
[array([[a1, b1, c1], ..., [x1, y1, z1]]), | |
array([a2, b2, c2, ..., x2, y2, z2]) | |
] | |
I would like to reshape it to a format like this: | |
(array([[a2], | |
[b2], | |
. | |
. | |
. | |
[z2]], | |
dtype = ...), | |
array([[a1], | |
[b1], | |
. | |
. | |
. | |
[z1]]) | |
) | |
To be honest, I'm also quite confused about the different parentheses. array1, array2] is a list of arrays, right? What is (array1, array2), then? | |
A: | |
<code> | |
import numpy as np | |
a = [ | |
np.array([[1, 2, 3], [4, 5, 6]]), | |
np.array([10, 11, 12, 13, 14]) | |
] | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
b = ( | |
np.expand_dims(a[1], axis=1), | |
np.expand_dims(a[0].flatten(), axis=1) | |
) | |
try: | |
np.testing.assert_array_equal(b, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
19. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
1 | |
0 | |
1 | |
1 | |
0 | |
1 | |
1 | |
0 | |
0 | |
1 | |
0.6 | |
A4 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have a three dimensional numpy source array and a two-dimensional numpy array of indexes. | |
For example: | |
src = np.array([[[1,2,3],[4,5,6]], | |
[[7,8,9],[10,11,12]]]) | |
idx = np.array([[0,1], | |
[1,2]]) | |
I'd like to get a 2d array, where each element represents the indexed value in the innermost dimension in that position: | |
array([[1,5], | |
[8,12]]) | |
How do I do this with numpy? | |
A: | |
<code> | |
import numpy as np | |
src = np.array([[[1,2,3],[4,5,6]], | |
[[7,8,9],[10,11,12]]]) | |
idx = np.array([[0,1], | |
[1,2]]) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
idx = np.expand_dims(idx, axis=-1) | |
res = np.take_along_axis(src, idx, axis=2).squeeze(-1) | |
try: | |
np.testing.assert_array_equal(res, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A4: | |
Problem: | |
I have a three dimensional numpy source array and a two-dimensional numpy array of indexes. | |
For example: | |
src = np.array([[[1,2,3],[4,5,6]], | |
[[7,8,9],[10,11,12]]]) | |
idx = np.array([[0,2], | |
[1,2]]) | |
I'd like to get a 2d array: | |
array([[1,5], | |
[9,12]]) | |
For example, the 5 on the top right corresponds to the 1st element of [4, 5, 6], and the 9 on the bottom left corresponds to the 2nd element of [7, 8, 9] | |
In other words, the indices on idx[0, 1] and idx[1, 0] corresponds to src[1, 0] and src[0, 1] | |
How do I do this with numpy? | |
A: | |
<code> | |
import numpy as np | |
src = np.array([[[1,2,3],[4,5,6]], | |
[[7,8,9],[10,11,12]]]) | |
idx = np.array([[0,2], | |
[1,2]]) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
idx = np.expand_dims(idx.T, axis=-1) | |
res = np.take_along_axis(src, idx, axis=2).squeeze(-1) | |
try: | |
np.testing.assert_array_equal(res, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
20. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
I have an issue in applying argmax to an array which has multiple brackets. In real life I am getting this as a result of a pytorch tensor. Here I can put an example: | |
a = np.array([[1.0, 1.1],[2.1,2.0]]) | |
np.argmax(a,axis=1) | |
array([1, 0]) | |
It is correct. But: | |
a = np.array([[[1.0, 1.1]],[[2.1,2.0]]]) | |
np.argmax(a,axis=1) | |
array([[0, 0], | |
[0, 0]]) | |
It does not give me what I expect. Consider that in reality I have this level of inner brackets: | |
a = np.array([[[[1.0, 1.1]]],[[[2.1,2.0]]]]) | |
A: | |
<code> | |
import numpy as np | |
a = np.array([[[[1.0, 1.1]]], [[[2.1, 2.0]]]]) | |
#BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(np.argmax(a, axis=-1).squeeze(), ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
21. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
1 | |
1 | |
1 | |
1 | |
0 | |
0 | |
1 | |
1 | |
0.5 | |
Origin: | |
Problem: | |
I have a large list files that contain 2D numpy arrays pickled through numpy.save. I am trying to read the first column of each file and create a new 2D array. | |
I currently read each column using numpy.load with a mmap. The 1D arrays are now in a list. | |
col_list = [] | |
for f in file_list: | |
Temp = np.load(f,mmap_mode='r') | |
col_list.append(Temp[:,0]) | |
How can I convert this into a 2D array? | |
A: | |
<code> | |
import numpy as np | |
def f(arrays): | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
return result | |
</code> | |
test: | |
arrs = [np.array([1,2,3]), np.array([4,5,6]), np.array([7,8,9])] | |
try: | |
np.testing.assert_array_equal(f(arrs), np.stack(arrs, axis=0)) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
22. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
I.m facing a little issue to combine arrays in a certain manner. Let's say we have | |
a=array([[1,1,1],[2,2,2],[3,3,3]]) | |
b=array([[10,10,10],[20,20,20],[30,30,30]]) | |
I wish to get | |
c=array([[[1,1,1],[10,10,10]],[[2,2,2],[20,20,20]],[[3,3,3],[30,30,30]]]) | |
The real issue is that my arrays a and b are much longer than 3 coordinates! | |
A: | |
<code> | |
import numpy as np | |
a = np.array([[1,1,1],[2,2,2],[3,3,3], [4,4,4]]) | |
b = np.array([[10,10,10],[20,20,20],[30,30,30], [40, 40, 40]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
test: | |
c = np.concatenate((a[:, None, :], b[:, None, :]), axis=1) | |
try: | |
np.testing.assert_array_equal(c, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
23. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
1 | |
0 | |
0 | |
1 | |
0 | |
0 | |
1 | |
0.2 | |
A7 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I currently looking for method in which i can split a ndarray into smaller ndarrays. | |
example: given ndarray with shape (78,1440,3), from which i want to extract a list of smaller ndarrays of the size (78,72,3), that would be 20 smaller sub ndarrays. | |
I tried using numpy.split. | |
numpy.split(matrix,72,axis=1) | |
which generates a list of length 72 and the first entry has the shape (78,20,3).. | |
Why am I not able to extract the size I need? | |
A: | |
<code> | |
import numpy as np | |
matrix = np.random.rand(78,1440,3) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
c = np.split(matrix, matrix.shape[1]//72, axis=1) | |
try: | |
np.testing.assert_array_equal(c, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A7: | |
Problem: | |
I currently looking for method in which i can split a ndarray into smaller ndarrays. | |
example: given ndarray with shape (78,1440,3), from which i want to extract a list of smaller ndarrays of the size (78,73,3). | |
Note that if shape[1] is not divisible by new size(in this example: 1440 is not divisible by 73), then fill zeros on the axis until it is dividible. | |
Why am I not able to extract the size I need? | |
A: | |
<code> | |
import numpy as np | |
matrix = np.random.rand(78,1440,3) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
t = matrix.shape[1] // 73 | |
if t * 73 < matrix.shape[1]: | |
new_arr = np.zeros((78, (t+1)*73-1440, 3)) | |
matrix = np.hstack([matrix, new_arr]) | |
c = np.split(matrix, matrix.shape[1] // 73, axis = 1) | |
try: | |
np.testing.assert_array_equal(c, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
24. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Suppose I have an array like: | |
import numpy as np | |
np.array([[0, 0, 0], | |
[1, 1, 1]]) | |
Here has shape (2,3) but it can be (n,3). I would like to transform it into a list of arrays representing columns. | |
Desired Output | |
[array([[0],[1]]), array([[0],[1]]), array([[0],[1]])] | |
I tried list comprehension, reshape etc. but I did not manage to get there. | |
A: | |
<code> | |
import numpy as np | |
a=np.array([[0, 0, 0],[1, 1, 1]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
c = [np.hsplit(a,3)] | |
try: | |
np.testing.assert_array_equal(c, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
+for detection | |
25. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
I have a numpy array of size nxm. I want the number of columns to be limited to k and the rest of the columns to be extended in new rows. Following is the scenario - | |
Initial array: nxm | |
Final array: pxk | |
where p = (m/k)*n | |
Eg. n = 2, m = 6, k = 2 | |
Initial array: | |
[[1, 2, 3, 4, 5, 6,], | |
[7, 8, 9, 10, 11, 12]] | |
Final array: | |
[[1, 2], | |
[7, 8], | |
[3, 4], | |
[9, 10], | |
[5, 6], | |
[11, 12]] | |
I tried using reshape but I did not get the desired result. | |
A: | |
<code> | |
import numpy as np | |
q = np.array([[1, 2, 3, 4, 5, 6,], [7, 8, 9, 10, 11, 12]]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
test: | |
c = q.T.reshape(-1,2,2).swapaxes(1,2).reshape(-1,2) | |
try: | |
np.testing.assert_array_equal(c, ans) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
26. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Simple question here: | |
I'm trying to get an array that alternates values (1, -1, 1, -1.....) for a given length. np.repeat just gives me (1, 1, 1, 1,-1, -1,-1, -1). Thoughts? | |
A: | |
<code> | |
import numpy as np | |
def f(n): | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
return result | |
</code> | |
test: | |
a = np.array([1, -1, 1, -1, 1, -1, 1, -1]) | |
b = np.array([1, -1, 1, -1, 1, -1, 1, -1, 1]) | |
try: | |
np.testing.assert_array_equal(a, f(8)) | |
np.testing.assert_array_equal(b, f(9)) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
27. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Simple question here: | |
I am trying to break a numpy array into chunks with a fixed size and pad the last one with 0. For example: [1,2,3,4,5,6,7] into chunks of 3 returns [[1,2,3],[4,5,6],[7,0,0]]. | |
A: | |
<code> | |
import numpy as np | |
l = np.array([1,2,3,4,5,6,7]) | |
ans = l.copy() | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
t = l.copy() | |
t.resize((3,3), refcheck=False) | |
try: | |
np.testing.assert_array_equal(ans, t) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
28. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
1 | |
0 | |
0 | |
1 | |
0 | |
0 | |
0 | |
1 | |
0.2 | |
Origin: | |
Problem: | |
Suppose I have the following array: | |
a = np.array([1,0,2,3,0,4,5,0]) | |
for each zero I would like to duplicate a zero and add it to the array such that I get: | |
np.array([1,0,0,2,3,0,0,4,5,0,0]) | |
A: | |
<code> | |
import numpy as np | |
a = np.array([1, 0, 2, 3, 0, 4, 5, 0]) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(a) | |
</code> | |
test: | |
b = np.array([1, 0, 2, 3, 0, 4, 5, 0]) | |
i = 0 | |
while i < len(b): | |
if b[i] == 0: | |
b = np.insert(b, i, 0) | |
i += 1 | |
i += 1 | |
try: | |
np.testing.assert_array_equal(a, b) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
29. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
Consider an array Z = [1,2,3,4,5,6,7,8,9,10,11,12,13,14], how to generate an array | |
R = [[4,3,2,1], [5,4,3,2], [6,5,4,3], ..., [14,13,12,11]] | |
A: | |
<code> | |
import numpy as np | |
Z = np.arange(1, 15, dtype=np.uint32) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(R) | |
</code> | |
test: | |
A = np.arange(11, dtype=np.uint32).reshape(-1, 1) + np.broadcast_to(Z[3::-1], (11, 4)) | |
try: | |
np.testing.assert_array_equal(A, R) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
30. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Converts a 1-dimensional array to a binary representation matrix. For every row in the matrix, the i-th element is 0 or 1, representing 2^i. The order is from left to right. | |
example: | |
given: | |
[1,2,3,4] | |
desired: | |
[[1,0,0], | |
[0,1,0], | |
[1,1,0], | |
[0,0,1]] | |
A: | |
<code> | |
import numpy as np | |
A = np.array([1,2,3,4]) | |
A = A.reshape((-1,1)) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(ans) | |
</code> | |
Test: | |
B = 2**np.arange(3) | |
M = A & B | |
M[M != 0] = 1 | |
try: | |
np.testing.assert_array_equal(ans, M) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
Numpy-100 | |
15. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0 | |
1 | |
0.8 | |
A3 | |
0 | |
0 | |
0 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0.7 | |
Origin: | |
Problem: | |
Create a 2d array with 1 on the border and 0 inside. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
Test: | |
ans = np.ones((10,10)) | |
ans[1:-1,1:-1] = 0 | |
try: | |
np.testing.assert_array_equal(ans, Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A3: | |
Problem: | |
Create a 10*5 array with 2 on the border and 3 inside. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
test: | |
ans = 2* np.ones((10,5)) | |
ans[1:-1,1:-1] = 3 | |
try: | |
np.testing.assert_array_equal(ans, Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
18. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
1 | |
0 | |
1 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
1 | |
0.8 | |
A1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
A3 | |
1 | |
1 | |
1 | |
0 | |
1 | |
1 | |
1 | |
1 | |
0 | |
0 | |
1 | |
0.7 | |
Origin: | |
Problem: | |
Create a 5x5 matrix with values 1,2,3,4 just below the diagonal. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
test: | |
ans = np.diag(1+np.arange(4), k=-1) | |
try: | |
np.testing.assert_array_equal(ans, Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A1: | |
Problem: | |
Create a 5x5 matrix with values 1,3,4,5 just below the diagonal. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
test: | |
ans = np.diag(2+np.arange(4), k=-1) | |
ans[1][0] = 1 | |
try: | |
np.testing.assert_array_equal(ans, Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A3: | |
Problem: | |
Create a 5x5 matrix with values 1,2,3,4 just above the diagonal. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
test: | |
ans = np.diag(1+np.arange(4), k=1) | |
try: | |
np.testing.assert_array_equal(ans, Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
20. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
1 | |
1 | |
0 | |
1 | |
0 | |
0 | |
0 | |
1 | |
0 | |
1 | |
0.4 | |
A1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
A6 | |
0 | |
0 | |
0 | |
1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
1 | |
0.1 | |
Origin: | |
Problem: | |
Consider a (6,7,8) shape array, what is the index (x,y,z) of the 100th element? | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(index) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(index, np.unravel_index(99, (6,7,8))) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A1: | |
Problem: | |
Consider a (6,7,8) shape array, what is the index (x,y,z) of the 99th element? | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(index) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(index, np.unravel_index(98, (6,7,8))) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A6: | |
Problem: | |
Consider a (6,7,8) shape array, what is the index (x,y,z) of the 100th element from back to front? | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(index) | |
</code> | |
Test: | |
try: | |
np.testing.assert_array_equal(index, np.unravel_index(6*7*8-100, (6,7,8))) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
25. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Given a 1D array, negate all elements which are between 3 and 8, or (3, 8), in place. | |
A: | |
<code> | |
import numpy as np | |
Z = np.arange(11) | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
Test: | |
test_Z = np.arange(11) | |
test_Z[(3<test_Z) & (test_Z <8)] *= -1 | |
try: | |
np.testing.assert_array_equal(Z, test_Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
37. | |
Score: | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Top-10 | |
Avg | |
Origin | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
A1 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
0 | |
Origin: | |
Problem: | |
Create a 5x5 matrix with row values ranging from 0 to 4. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
Test: | |
test_Z = np.zeros((5, 5)) | |
test_Z += np.arange(5) | |
try: | |
np.testing.assert_array_equal(Z, test_Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |
A1: | |
Problem: | |
Create a 5x5 matrix with row values equals 1, 3, 4, 5, 6. | |
A: | |
<code> | |
import numpy as np | |
### BEGIN SOLUTION | |
[insert] | |
### END SOLUTION | |
print(Z) | |
</code> | |
test: | |
test_Z = np.ones((5, 5)) | |
test_Z += np.arange(5) | |
test_Z[:, 1:] += 1 | |
try: | |
np.testing.assert_array_equal(Z, test_Z) | |
print('Test passed!') | |
except: | |
print('Test failed...') | |