Προς το περιεχόμενο

Python numpy


xsperminator

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Καλησπερα παρακολουθω ενα ονλινε μαθημα απο το πανεπιστημιο του Ελσινκι και υπαρχει η παρακατω ασκηση.

Write function vector_lengths that gets a two dimensional array of shape (n,m) as a parameter. Each row in this array corresponds to a vector. The function should return an array of shape (n,), that has the length of each vector in the input. The length is defined by the usual Euclidean norm. Don’t use loops at all in your solution. Instead use vectorized operations. You must use at least the np.sum and the np.sqrt functions. You can’t use the function scipy.linalg.norm. Test your function in the main function.

Την εχω υλοποιηση ως εξης.

#!/usr/bin/env python3

import numpy as np
import scipy.linalg

def vector_lengths(a):
    a2 = a**2
    a3 = np.sum(a2,axis=0)
    a4 = np.sqrt(a3)
    return a4

def main():
    a = np.random.rand(1,10)
    print(vector_lengths(a))
if __name__ == "__main__":
    main()

Παρολαυτα οταν το τρεχω στον αυτοματοποιημενο ελεγχο κωδικα μου βγαζει το εξης error.

Testing: part02-e14_vector_lengths
Failed: test.test_vector_lengths.VectorLengths.test_content
        Tuples differ: (1,) != (10,)

First differing element 0:
1
10

- (1,)
+ (10,)
?   +
 : Incorrect shape!

Test results: 3/4 tests passed
 75%[████████████████████████████████████████████████████████░░░░░░░░░░░░░░░░░░░]

Υπαρχει καποιος που να εχει ιδεα τι παιζει; Τι πρεπει να κανω;

Επεξ/σία από xsperminator
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

The function should return an array of shape (n,)

Άρα αν βάλεις ως input

    a = np.random.rand(3,10)

θα πρέπει να σου επιστρέψει ένα array με shape (3,)

Η υλοποίηση σου τι επιστρέφει;

Σε τέτοιου τύπου προβλήματα βολεύει πολύ να γράφεις tests. Πχ:

assert vector_lengths(np.random.rand(1, 10)).shape == (1,)
assert vector_lengths(np.random.rand(2, 10)).shape == (2,)
assert vector_lengths(np.random.rand(5, 10)).shape == (5,)

Επί της ουσίας, ο αυτοματοποιημένος έλεγχος του κώδικα τέτοιου τύπου tests τρέχει

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...