In [1]:
import numpy as np

In [2]:
a = np.array([0, 2, 3, 6])
b = np.array([3, 4, 5, 15])
c = np.array([6, 8, 9, 9])

In [3]:
print(np.gcd.reduce([a, b, c]))


[3 2 1 3]

In [4]:
print(np.gcd(np.gcd(a, b), c))


[3 2 1 3]

In [5]:
print(np.lcm.reduce([a, b, c]))


[ 0  8 45 90]

In [6]:
print(np.gcd.reduce([6, 9, 12, 15]))


3

In [7]:
print(np.gcd.reduce((a, b, c)))


[3 2 1 3]

In [8]:
# print(np.gcd.reduce(a, b, c))
# TypeError: data type not understood

In [9]:
a_2d = np.array([[0, 2, 3, 6], [0, 2, 3, 6]])
print(a_2d)


[[0 2 3 6]
 [0 2 3 6]]

In [10]:
# print(np.gcd.reduce([a, b, a_2d]))
# ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

In [11]:
print(np.gcd(np.gcd(a, b), a_2d))


[[3 2 1 3]
 [3 2 1 3]]

In [12]:
# print(np.gcd.reduce([a, b, 9]))
# ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

In [13]:
print(np.gcd(np.gcd(a, b), 9))


[3 1 1 3]

In [14]:
a_1d = np.array([4, 6, 12])

In [15]:
print(np.gcd.reduce(a_1d))


2

In [16]:
print(np.lcm.reduce(a_1d))


12

In [17]:
a_2d = np.array([[4, 6, 12], [2, 12, 16]])
print(a_2d)


[[ 4  6 12]
 [ 2 12 16]]

In [18]:
print(np.gcd.reduce(a_2d))


[2 6 4]

In [19]:
print(np.gcd(a_2d[0], a_2d[1]))


[2 6 4]

In [20]:
print(a_2d.ravel())


[ 4  6 12  2 12 16]

In [21]:
print(np.gcd.reduce(a_2d.ravel()))


2

In [22]:
print(np.lcm.reduce(a_2d.ravel()))


48