2-D arrays with numpy arange
--------------------------------------------------
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------
Take control of your privacy with Proton's trusted, Swiss-based, secure services.
Choose what you need and safeguard your digital life:
Mail: https://go.getproton.me/SH1CU
VPN: https://go.getproton.me/SH1DI
Password Manager: https://go.getproton.me/SH1DJ
Drive: https://go.getproton.me/SH1CT
Music by Eric Matyas
https://www.soundimage.org
Track title: Mysterious Puzzle
--
Chapters
00:00 2-D Arrays With Numpy Arange
01:15 Answer 1 Score 0
01:29 Answer 2 Score 3
01:57 Answer 3 Score 5
02:45 Accepted Answer Score 4
03:07 Thank you
--
Full question
https://stackoverflow.com/questions/4072...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #arrays #numpy #multidimensionalarray
#avk47
Hire the world's top talent on demand or became one of them at Toptal: https://topt.al/25cXVn
and get $2,000 discount on your first invoice
--------------------------------------------------
Take control of your privacy with Proton's trusted, Swiss-based, secure services.
Choose what you need and safeguard your digital life:
Mail: https://go.getproton.me/SH1CU
VPN: https://go.getproton.me/SH1DI
Password Manager: https://go.getproton.me/SH1DJ
Drive: https://go.getproton.me/SH1CT
Music by Eric Matyas
https://www.soundimage.org
Track title: Mysterious Puzzle
--
Chapters
00:00 2-D Arrays With Numpy Arange
01:15 Answer 1 Score 0
01:29 Answer 2 Score 3
01:57 Answer 3 Score 5
02:45 Accepted Answer Score 4
03:07 Thank you
--
Full question
https://stackoverflow.com/questions/4072...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #arrays #numpy #multidimensionalarray
#avk47
ANSWER 1
Score 5
To do the first one with numpy:
>>> a = np.arange(11)
>>> a[:,None]+a
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
[ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
[ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13],
[ 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14],
[ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
[ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
[ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17],
[ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18],
[ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
[10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]])
For the second array, @Divakar has a good approach. Maybe a bit simpler syntax to do this:
>>> (a%a[:,None])==0
array([[ True, True, True, True, True, True, True, True, True, True, True],
[ True, True, True, True, True, True, True, True, True, True, True],
[ True, False, True, False, True, False, True, False, True, False, True],
[ True, False, False, True, False, False, True, False, False, True, False],
[ True, False, False, False, True, False, False, False, True, False, False],
[ True, False, False, False, False, True, False, False, False, False, True],
[ True, False, False, False, False, False, True, False, False, False, False],
[ True, False, False, False, False, False, False, True, False, False, False],
[ True, False, False, False, False, False, False, False, True, False, False],
[ True, False, False, False, False, False, False, False, False, True, False],
[ True, False, False, False, False, False, False, False, False, False, True]], dtype=bool)
ACCEPTED ANSWER
Score 4
Per your first question:
np.add(*np.indices((nrow, ncol)))
For nrow=5, ncol=6 you get
array([[0, 1, 2, 3, 4, 5],
[1, 2, 3, 4, 5, 6],
[2, 3, 4, 5, 6, 7],
[3, 4, 5, 6, 7, 8],
[4, 5, 6, 7, 8, 9]])
This method doesn't use the numpy.arange function, though I find it more readable. Moreover, it supports cases when nrow != ncol.
ANSWER 3
Score 3
For the second array, here's one approach with broadcasting -
a = np.arange(10)
out = (np.mod(a,a[:,None])==0) & (a[:,None]!=0)
Sample run -
In [511]: a = np.arange(10)
In [512]: print (np.mod(a,a[:,None])==0) & (a[:,None]!=0)
[[False False False False False False False False False False]
[ True True True True True True True True True True]
[ True False True False True False True False True False]
[ True False False True False False True False False True]
[ True False False False True False False False True False]
[ True False False False False True False False False False]
[ True False False False False False True False False False]
[ True False False False False False False True False False]
[ True False False False False False False False True False]
[ True False False False False False False False False True]]
ANSWER 4
Score 0
You can try this for the first array you want:
np.array([range(i,i+10) for i in range(10)])
and for the second array:
np.array([[i>0 and j%i==0 for j in range(10)] for i in range(10)])