除了《Numpy 简介》篇介绍的4种创建数组的方法外,常用的方法还有以下几种:
>>> np.arange(0, 2, 0.1)
array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2,
1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9]
>>> np.arange(1, 0, -0.2) #步长可以为负数
array([1. , 0.8, 0.6, 0.4, 0.2])
>>> np.linspace(0, 1, 4)
array([0. , 0.33333333, 0.66666667, 1. ])
>>> np.linspace(0, 1, 4, endpoint=False)
array([0. , 0.25, 0.5 , 0.75])
>>> np.fromstring("1,2,3", dtype = float, sep=",")
array([1., 2., 3.])
>>> np.fromstring("1,2,3", dtype = float, count =2, sep=",")
array([1., 2.]) #count 限制返回的数组的元素个数
>>> np.fromstring("abc", dtype = np.int8) #返回ASCII码
array([97, 98, 99], dtype=int8)
>>> np.fromstring("abcd", dtype = np.int16) #把字节98和字节97一起当做一个16bit的整数
array([25185, 25699], dtype=int16)
#它的值是98*256+97 = 25185。可以看出内存中是以little endian(低字节位在前)方式保存数据的
格式:loadtxt(fname, dtype=<class 'float'>, comments='#', delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0, encoding='bytes')
fname: 文件对象,或文件路径
dtype:结果数组的数据类型,默认为浮点型
comments:注释符,默认为“#”,以其开始的行会被忽略
delimiter:分隔符,默认为空白符(空格,制表符等)
converters: 转换字典。字典的key为列号;字典的value为一个函数,用于将该列的字符串解析成想要的数值,比如第0列是表示日期的字符串:``converters = {0: datestr2num}``,又比如 ``converters = {3: lambda s: float(s.strip() or 0)}``.
skiprows: 整形,跳过开头的若干行
usecols:整形或序列。默认为None,读取所有列。e.g. usecols=(1, 4, 5),则只提取第 1,4,5 列(0列为起始列)
unpack:布尔型,若为真,则返回的数组被转置。
ndim: 整形,最少的维度。合法的值有0(默认),1和2。
encode:字符串类型,编码。
如读取下面的csv文件:
>>> np.loadtxt(r"d:\data1.csv",delimiter=",")
array([[1. , 2. , 3. ],
[4. , 5. , 6. ],
[7. , 8. , 9.999]]
shape : (N,) tuple of ints
dtype:传递给function的参数(下标)的数据类型,默认为float。
>>> def func(i):
return i%4 +1
>>> np.fromfunction(func,(10,)) #下标从0到9
array([1., 2., 3., 4., 1., 2., 3., 4., 1., 2.])
>>> np.fromfunction(lambda i, j: i + j, (3, 3), dtype=int) #行下标0到2,列小标0到2
array([[0, 1, 2],
[1, 2, 3],
[2, 3, 4]])
本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!