多语言展示
当前在线:1920今日阅读:167今日分享:16

numpy自动生成数组

Python是目前最流行最简单用途最广泛的编程语言,大数据时代最应该学习的一门编程语言。其中,numpy库是非常重要的一个基础库。numpy生成数组有很多方式,下面看看自动生成数组的几种方法。
工具/原料

python,anaconda,spyder,numpy

方法/步骤
1

加载numpy库。等差数列生成数组。np.arange(0,100,10)表示生成一个起始为0,终点为100(不含),间距为10的序列;np.linspace(0,100,10)表示生成一个等差数列,首项为0,末项为100(默认包含),共10个数;np.linspace(0,100,10,endpoint=False)表示生成一个等差数列,首项为0,末项为100(不含),共10个数;如图所示

2

等比数列生成数组。np.logspace(0,5,5)表示生成一个首项为10的0次方,末项为10的5次方(包含),共有5个数的等比数列;np.logspace(0,5,5,endpoint=False)表示生成一个首项为10的0次方,末项为10的5次方(不含),共有5个数的等比数列;np.logspace(0,5,5,base=2,endpoint=False)表示生成一个首项为2的0次方,末项为2的5次方(不含),共有5个数的等比数列;如图所

3

特殊函数生成数组(1)。np.empty((3,5),np.int)表示生成一个3*5的,类型为整数的空数组;np.zeros(5,np.int)表示生成一个长度为5,元素都为0的一维整数数组;np.ones(5,np.int)表示生成一个长度为5,元素都为1的一维整数数组;np.full(5,np.pi)表示生成一个长度为5,元素都为π的一维数组;如图所示

4

特殊函数生成数组(2)。a=np.array(np.arange(9)).reshape(3,3)表示生成一个3*3的整数数组,赋值给a;np.zeros_like(a)表示生成一个形状和类型与a相同,但元素为0的数组;np.ones_like(a)表示生成一个形状和类型与a相同,但元素为1的数组;np.empty_like(a)表示生成一个形状和类型与a相同,但元素为空的数组;np.full_like(a,np.pi)表示生成一个形状和类型与a相同,但元素都为π的数组,由于a的类型为整数,所以只取整数部分的数值3,;如图所示

5

用fromstring来生成数组。s='abcdef'表示为字符串s赋值;np.fromstring(s,dtype=np.int8)表示根据字符串s的字节序列生成数组(8位恰好是ASCII编码);np.fromstring(s,dtype=np.int16)表示根据字符串s的字节序列生成数组(16位表示把相邻的2个8位合并一起)98*256+97表示第一个和第二个字符的ASCII的求和;如图所示

6

用fromfunction来生成数组。自定义函数func实现对求元素的平方再加1,然后np.fromfunction(func,(10,))表示生成一个长度为10的数组,元素分别为0~9的平方加1;自定义函数func2实现9*9乘法表;如图所示

注意事项
1

linspace和logspace可以通过endpoint来选择是否包含终点数字

2

logspace通过参数base设置等比数列的基数(其实也就是公比)

3

full_like需要注意参数中的数组的数据类型

4

除了fromstring外,还可以frombuffer、fromfile生成数组

5

fromfunction的第二个参数是从0开始的,指明了数组的形状

推荐信息