要求:从两个不同数组中随机抽取数组,用到函数np.random.choice
import numpy as np
hyper=[1,2,5,8,9,12,13,14,17,19]
noh=[3,4,6,7,10,11,15,16,18,20]
#h:n 2:2
l1=np.random.choice(hyper,2,replace=False)
l2=np.random.choice(noh,2,replace=False)
ll=[l2[0],l1[0],l1[1],l2[1]]
print(ll)
l1=np.random.choice(hyper,2,replace=False)
l2=np.random.choice(noh,2,replace=False)
ll=[l1[0],l2[0],l1[1],l2[1]]
print(ll)
l1=np.random.choice(hyper,2,replace=False)
l2=np.random.choice(noh,2,replace=False)
ll=[l1[0],l1[1],l2[0],l2[1]]
print(ll)
l1=np.random.choice(hyper,2,replace=False)
l2=np.random.choice(noh,2,replace=False)
ll=[l2[1],l2[0],l1[0],l1[1]]
print(ll)
先定义一个数组列表:列表合并也可以用+,但是用+的话,会产生一个新的列表(当然也可以赋值给任何的变量),而extend则只是修改了原来的对象
只读数组,只能查看不能编辑,列表的切片操作同样适于元组。
表达方式:tuple=("元素1","元素2","元素3"),中间同样用,隔开
特殊的元组:tupleZero=()空元组
tupleOne=("元素1",) 只有一个元素,后面要跟一个,(注意好的习惯的养成)
作用:1.对于一些不想被修改的元素,可以放在元组里面
2.元组可以在映射(和集合的成员)中当作键使用,而列表不行
3.元组作为内建函数和方法的返回值
enumerate(列表对象,返回标签起始值(默认为零))
上面的例子可以看出,返回的i是一个元组,如果不想要元组的话,可以用两个参数接收:
数组允许进行批量操作而无需使用for循环,因此更加简便,这种特性也被称为向量化。任何两个等尺寸之间的算术操作都应用逐元素操作的方式进行。
同尺度数组之间的比较,会产生一个布尔型数组。
上述操作均是在同尺度数组之间进行的,对于不同尺度数组间的操作,会使用到广播特性。
索引:获取数组中特定位置元素的过程;
切片:获取数组元素子集的过程。
new_a = a.astype(new_type)
astype()方法一定会创建新的数组(原始数据的一个拷贝),即使两个类型一致。
ls = a.tolist()
转置是一种特殊的数据重组形式,可以返回底层数据的视图而不需要复制任何内容。
数组拥有 transpose 方法,也有特殊的 T 属性。
对于更高纬度的数组, transpose 方法可以接受包含轴编号的元组,用于转置轴。
ndarray的 swapaxes 方法,通过接受一对轴编号作为参数,并对轴进行调整用于重组数据。
swapaxes 方法返回的是数据的视图,而没有对数据进行复制。
Reference:
《Python for Data Analysis:Data Wrangling with Pandas,Numpy,and IPython》