1.创建一个长度为10的整型数组v1。所有数字不能全部相同。
v1 = np.array([0,1,2,3,4,5,6,7,8,9])
2.创建一个新数组v2,包含第一个问题中创建的v1数组中的所有索引为奇数的元素。
v2 = v1[1::2]
3.采用数组v1的倒序创建一个新数组v3。
v3 = v1[::-1]
4.创建一个命名为m4的任意float类型二维数组,4行5列。所有数据不能完全相同。
m4 = np.linspace(0.1,20,num=20,endpoint=True)
m4.shape=(4,5)
5.以m4为基础创建一个新的二维数组m5,其中每一行都是m4对应行的倒序。
m5 = m4[::,::-1]
6.创建一个新数组m6,行和列都是m4的倒序。
m6 = m4[::-1,::-1]
7.忽略m4的第一行和最后一行,第一列和最后一列后,得到一个新的二维数组m7.
注意:注意:不要修改m4
m7 = m4[1:3,1:4]
8.创建一个2X3X4的全部为7的数组m8,提示:用Numpy的full函数。
m8 = np.full((2,3,4),7)
9.完善函数fun9,参数data是一个整型列表,在任意两个相邻整数之间插入2个8。必须使用numpy。返回结果为Numpy的ndarray类型。
注意:注意:本题严禁使用循环
def fun9(data=[1,2,3,4,5]):
"""
Arg:
data : a list as input; e.g. [1,2,3,4,5]
return a Numpy ndarray; e.g. [1 8 8 2 8 8 3 8 8 4 8 8 5]
"""
temp=np.array(data)
nplst=np.full(3*len(data)-2,8)
nplst[::3]=temp
return nplst
10.完善函数fun10,参数data是一个整型列表,把data中奇数的数据替换为1, 偶数替换为-1。 必须使用numpy,返回结果为Numpy的ndarray类型。
提示:np.where(condition, x, y)
def fun10(data=[9,2,6,4,2,6,7,8,2,10]):
"""
Arg:
data : an array as input; e.g. array([9,2,6,4,2,6,7,8,2,10])
return a Numpy ndarray; e.g. [ 1 -1 -1 -1 -1 -1 1 -1 -1 -1]
"""
temp=np.array(data)
nplst=np.where(temp%2==0,-1,1)
return nplst
11.完成函数fun11(),从一维数组data中找到所有峰值的索引。说明:峰值点大于左右两侧的数据值,不包含端点。
提示: np.diff,np.sign,np.where(condition)
def fun11(data=[1, 3, 7, 1, 2, 6, 0, 1]):
"""
Arg:
data : a list as input; e.g. [1, 3, 7, 1, 2, 6, 0, 1]
return a numpy ndarray; e.g. [2 5]
"""
temp=np.array(data)
cha=np.diff(temp)
fuhao=np.sign(cha)
cha_=np.diff(fuhao)
ans=np.where(cha_==-2)[0]+1
return ans