<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 The usage of random.seed()
如果使用了 random.seed()，那么每次所产生的随机数将与前面一次的相同。
Step1:  Under stand how path is joined
Here, I use a simple example to show how we generate a path in python.
Step2:  numpy.c_ function
Translates slice objects to concatenation along the second axis.
<ASSISTANT_TASK:>
Python Code:
import numpy as np
np.random.seed(20)
runningtimes=0
while (runningtimes <=10):
    x = np.random.randn(5)
    print(x)
    print('**')
    runningtimes=runningtimes+1
import numpy as np
runningtimes=0
while (runningtimes <=10):
    np.random.seed(5)
    x = np.random.randn(5)
    print(x)
    print('**')
    runningtimes=runningtimes+1
Explanation: The usage of random.seed()
如果使用了 random.seed()，那么每次所产生的随机数将与前面一次的相同。
End of explanation
import os
PROJECT_ROOT_DIR = '.'
CHAPTER_ID = '001'
fig_id = '300'
path = os.path.join(PROJECT_ROOT_DIR, "images", CHAPTER_ID, fig_id + ".png")
print(path)
Explanation: Under stand how path is joined
Here, I use a simple example to show how we generate a path in python.
End of explanation
import numpy as np
arr1 = np.c_[np.array([1,2,3]), np.array([4,5,6])]
print(arr1)
print('*******')
arr2 = np.c_[np.array([[1,2,3]]), np.array([[4,5,6]])]
print(arr2)
print('*******')
arr3 = np.c_[np.array([[1,2,3]]), 0, 0, np.array([[4,5,6]])]
print(arr3)
Explanation: numpy.c_ function
Translates slice objects to concatenation along the second axis.
End of explanation
<END_TASK>