จงเขียนฟังก์ชัน translate(P, d)
ซึ่งรับ P
เป็นอาเรย์สองมิติขนาด nx2 และรับ d
เป็นอาเรย์หนึ่งมิติสองช่อง ฟังก์ชันนี้สร้างและคืนอาเรย์สองมิติ Q
ที่มีขนาดเดียวกับ P
โดยที่ Qk,0 = Pk,0 + d0
และ Qk,1 = Pk,1 + d1
สำหรับทุกแถวที่ k ของ P
(ไม่ต้องใช้คำสั่งวงวนใด ๆ)
import numpy as np
def translate(P, d):
import numpy as np
def translate(P, d):
return P + d
import numpy as np
q = "`"
fname = "translate"
arg1 = 'np.array(' + str([[np.random.randint(0,20) for k in range(2)] for j in range(10)]) + ', float)'
arg2 = 'np.array([1.5, 2.5])'
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์สองตัว')
func.check_not(has_code(r"(for|while)"), msg="ไม่ใช้ for หรือ while นะ")
fcall = fname + "(" + arg1 + ", " + arg2 + ")"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fname+q) + " ให้ผลผิด")
จงเขียนฟังก์ชัน translate(P, d)
ซึ่งรับ P
เป็นอาเรย์สองมิติขนาด 2xn และรับ d
เป็นอาเรย์หนึ่งมิติสองช่อง ฟังก์ชันนี้สร้างและคืนอาเรย์สองมิติ Q
ที่มีขนาดเดียวกับ P
โดยที่ Q0,k = P0,k + d0
และ Q1,k = P1,k + d1
สำหรับทุกคอลัมน์ที่ k ของ P
(ไม่ต้องใช้คำสั่งวงวนใด ๆ)
import numpy as np
def translate(P, d):
import numpy as np
def translate(P, d):
return P + d.reshape((len(d),1))
import numpy as np
q = "`"
fname = "translate"
arg1 = 'np.array(' + str([[np.random.randint(0,20) for k in range(10)] for j in range(2)]) + ', float)'
arg2 = 'np.array([1.5, 2.5])'
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์สองตัว')
func.check_not(has_code(r"(for|while)"), msg="ไม่ใช้ for หรือ while นะ")
fcall = fname + "(" + arg1 + ", " + arg2 + ")"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fname+q) + " ให้ผลผิด")
จงเขียนคำสั่งเพื่อสร้างอาเรย์ A
ที่มีขนาดและค่าภายในเป็นดังรูป โดยใช้ broadcasting (ไม่ต้องใช้คำสั่งวงวน)
import numpy as np
A = np.ndarray((10,5), int)
A[:] = np.arange(1,6)
import numpy as np
v = "A"
Ex().check_not(has_code(r"(for|while)"), msg="ไม่ใช้ for หรือ while นะ")
obj = Ex().check_object(v, missing_msg = "ไม่มีตัวแปร `" + v + "`")
obj.has_equal_value(expr_code = "type("+v+")", incorrect_msg = "`" + v + "` ต้องเป็น numpy array")
obj.has_equal_value(expr_code = v+".dtype", incorrect_msg = "`" + v + "` ต้องเก็บจำนวนเต็ม")
obj.has_equal_value(incorrect_msg = "`" + v + "` มีค่าไม่ตรงตามโจทย์")
จงเขียนคำสั่งเพื่อสร้างอาเรย์ A
ที่มีขนาดและค่าภายในเป็นดังรูป โดยใช้ broadcasting (ไม่ต้องใช้คำสั่งวงวน)
import numpy as np
A = np.ndarray((9,5), int)
A[:,:] = np.arange(1,10).reshape(9,1)
import numpy as np
v = "A"
Ex().check_not(has_code(r"(for|while)"), msg="ไม่ใช้ for หรือ while นะ")
obj = Ex().check_object(v, missing_msg = "ไม่มีตัวแปร `" + v + "`")
obj.has_equal_value(expr_code = "type("+v+")", incorrect_msg = "`" + v + "` ต้องเป็น numpy array")
obj.has_equal_value(expr_code = v+".dtype", incorrect_msg = "`" + v + "` ต้องเก็บจำนวนเต็ม")
obj.has_equal_value(incorrect_msg = "`" + v + "` มีค่าไม่ตรงตามโจทย์")
จงเขียนคำสั่งเพื่อสร้างอาเรย์ A
ที่มีขนาดและค่าภายในเป็นดังรูป โดยใช้ broadcasting (ไม่ต้องใช้คำสั่งวงวน)
import numpy as np
X = np.arange(0,8)
XT = X.reshape((8,1))
A = X + XT
import numpy as np
v = "A"
Ex().check_not(has_code(r"(for|while)"), msg="ไม่ใช้ for หรือ while นะ")
obj = Ex().check_object(v, missing_msg = "ไม่มีตัวแปร `" + v + "`")
obj.has_equal_value(expr_code = "type("+v+")", incorrect_msg = "`" + v + "` ต้องเป็น numpy array")
obj.has_equal_value(expr_code = v+".dtype", incorrect_msg = "`" + v + "` ต้องเก็บจำนวนเต็ม")
obj.has_equal_value(incorrect_msg = "`" + v + "` มีค่าไม่ตรงตามโจทย์")
จงเขียนฟังก์ชัน upper_tri_true(n)
ที่รับจำนวนเต็ม n เพื่อสร้างและคืนอาเรย์สองมิติขนาด nxn ที่เก็บค่า True ในช่องที่มีเลขแถวไม่มากกว่าเลขคอลัมน์ นอกนั้นเป็น False หมด เช่น upper_tri_true(7)
จะได้อาเรย์ดังรูป ในรูปแสดงค่า True และ False ด้วย T และ F ตามลำดับ (ไม่ต้องใช้คำสั่งวงวน)
import numpy as np
def upper_tri_true(n):
import numpy as np
def upper_tri_true(n):
a = np.arange(n)
at = a.reshape((n,1))
return at <= a
import numpy as np
q = "`"
fname = "upper_tri_true"
arg1 = str(np.random.randint(5, 10))
func = Ex().check_function_def(fname, missing_msg="ไม่พบฟังก์ชัน " + (q+fname+q))
func.has_equal_part_len('args', 'ฟังก์ชันนี้รับพารามิเตอร์หนึ่งตัว')
func.check_not(has_code(r"(for|while)"), msg="ไม่ใช้ for หรือ while นะ")
fcall = fname + "(" + arg1 + ")"
func.check_call(fcall).has_equal_value(incorrect_msg=(q+fname+q) + " ให้ผลผิด")