Numpy学习笔记(三)创建数组

一、NumPy函数创建
'''arange函数
作用:在给定区间内创建一系列均匀间隔的值
numpy.arange(start, stop, step, dtype=None)
'''
import numpy as np
# 在区间 [3, 7) 中以 0.5 为步长新建数组,数值类型为浮点数
data=np.arange(3, 7, 0.5, dtype='float32')
print(data)
'''
[3.  3.5 4.  4.5 5.  5.5 6.  6.5]
'''
'''linspace函数
作用:linspace方法也可以像arange方法一样,创建数值有规律的数组。
linspace 用于在指定的区间内返回间隔均匀的值
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
start:序列的起始值。
stop:序列的结束值。
num:生成的样本数。默认值为50。
endpoint:布尔值,如果为真,则最后一个样本包含在序列内。
retstep:布尔值,如果为真,返回间距。
dtype:数组的类型。
'''
import numpy as np
#np.linspace(起始值, 结束值, 生成样本数, 是否包含结束值,是否返回间隔,数值类型指定)
data1=np.linspace(0, 1, 100, endpoint=False,retstep=False,dtype=None)
print(data1)
'''
[0.   0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1  0.11 0.12 0.13
 0.14 0.15 0.16 0.17 0.18 0.19 0.2  0.21 0.22 0.23 0.24 0.25 0.26 0.27
 0.28 0.29 0.3  0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4  0.41
 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5  0.51 0.52 0.53 0.54 0.55
 0.56 0.57 0.58 0.59 0.6  0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69
 0.7  0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8  0.81 0.82 0.83
 0.84 0.85 0.86 0.87 0.88 0.89 0.9  0.91 0.92 0.93 0.94 0.95 0.96 0.97
 0.98 0.99]
'''
#将 endpoint 参数改成 True 看看区别:
'''
[0.         0.01010101 0.02020202 0.03030303 0.04040404 0.05050505
 0.06060606 0.07070707 0.08080808 0.09090909 0.1010101  0.11111111
 0.12121212 0.13131313 0.14141414 0.15151515 0.16161616 0.17171717
 0.18181818 0.19191919 0.2020202  0.21212121 0.22222222 0.23232323
 0.24242424 0.25252525 0.26262626 0.27272727 0.28282828 0.29292929
 0.3030303  0.31313131 0.32323232 0.33333333 0.34343434 0.35353535
 0.36363636 0.37373737 0.38383838 0.39393939 0.4040404  0.41414141
 0.42424242 0.43434343 0.44444444 0.45454545 0.46464646 0.47474747
 0.48484848 0.49494949 0.50505051 0.51515152 0.52525253 0.53535354
 0.54545455 0.55555556 0.56565657 0.57575758 0.58585859 0.5959596
 0.60606061 0.61616162 0.62626263 0.63636364 0.64646465 0.65656566
 0.66666667 0.67676768 0.68686869 0.6969697  0.70707071 0.71717172
 0.72727273 0.73737374 0.74747475 0.75757576 0.76767677 0.77777778
 0.78787879 0.7979798  0.80808081 0.81818182 0.82828283 0.83838384
 0.84848485 0.85858586 0.86868687 0.87878788 0.88888889 0.8989899
 0.90909091 0.91919192 0.92929293 0.93939394 0.94949495 0.95959596
 0.96969697 0.97979798 0.98989899 1.        ]
'''
# TODO endpoint:布尔值,如果为真,则最后一个样本包含在序列内。
'''numpy.ones函数与zeros函数,两者使用相同,区别在于填充值不同
作用:快速创建数值全部为 1 的多维数组
numpy.ones(shape, dtype=None, order='C')
shape:用于指定数组形状,例如(1, 2)或 3。
dtype:数据类型。
order:{'C','F'},按行或列方式储存数组。
'''
import numpy as np
#生成三行4列为1的多维数组
print(np.ones((3, 4)))
'''
[[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
'''
#生成三行4列为1的多维数组,指定数组类型为整数
print(np.ones((3, 4),dtype=int))
'''
[[1 1 1 1]
 [1 1 1 1]
 [1 1 1 1]]
'''
#生成三行4列的多维数组,分别为行列指定类型
print(np.ones((3,4),dtype=[('x','int'),('y','float')]))
'''
[[(1, 1.) (1, 1.) (1, 1.) (1, 1.)]
 [(1, 1.) (1, 1.) (1, 1.) (1, 1.)]
 [(1, 1.) (1, 1.) (1, 1.) (1, 1.)]]
'''
'''numpy.eye 
作用:创建一个二维数组,其特点是k 对角线上的值为 1,其余值全部为0。方法如下:
numpy.eye(N, M=None, k=0, dtype=<type 'float'>)
N:输出数组的行数。
M:输出数组的列数。
k:对角线索引:0(默认)是指主对角线,正值是指上对角线,负值是指下对角线。
'''
import numpy as np
print(np.eye(4,4,0,dtype=int)) #生成4行4列,主对角线为1
'''
[[1 0 0 0]
 [0 1 0 0]
 [0 0 1 0]
 [0 0 0 1]]
'''
print(np.eye(4,4,1,dtype=int)) #生成4行4列,主对角线向上偏移一行为1
'''
[[0 1 0 0]
 [0 0 1 0]
 [0 0 0 1]
 [0 0 0 0]]
'''
print(np.eye(4,4,-1,dtype=int))#生成4行4列,主对角线向下偏移一行为1
'''
[[0 0 0 0]
 [1 0 0 0]
 [0 1 0 0]
 [0 0 1 0]]
'''
二、从已知数据创建
'''
函数中创建 ndarray。NumPy 提供了下面 5 个方法:

frombuffer(buffer):将缓冲区转换为 1 维数组。
fromfile(file,dtype,count,sep):从文本或二进制文件中构建多维数组。
fromfunction(function,shape):通过函数返回值来创建多维数组。
fromiter(iterable,dtype,count):从可迭代对象创建 1 维数组。
fromstring(string,dtype,count,sep):从字符串中创建 1 维数组。
'''
import numpy as np

#创建一个5行4列
data = np.fromfunction(lambda a, b: a + b, (5, 4))
print(data)
'''
[[0. 1. 2. 3.]
 [1. 2. 3. 4.]
 [2. 3. 4. 5.]
 [3. 4. 5. 6.]
 [4. 5. 6. 7.]]
'''
上一篇:Python语法随笔


下一篇:Python DataFrame 中loc和iloc的区别