Python Numpy笔记
numpy.full方法
- 格式: numpy.full(整数或整数序列,填充值,“dtype数据类型”,主要是行或列)
np.full((2,3)) #第一个参数,表示一个二维3列的数组,如果不以坐标形式,则表示为一维数组
np.full(2,np.inf) #第二个参数,表示一维二列的数组,都填充无穷大
np.full((2,2),2,“float”) #第三个参数,指定数据的类型
>>> x = np.full((2,2),2,"float")
>>> x
array([[2., 2.],
[2., 2.]])
>>> np.array(x).dtype
dtype('float64')
>>>
np.full((2,3),2,“float”,“F”) #第三个参数,是否在内存中以行为主(C风格)或列为主(Fortran风格)连续(行或列)顺序存储多维数据[我看不出实际效果]。
>>> n = np.full((2,3),2,"float","F")
>>> n
array([[2., 2., 2.],
[2., 2., 2.]])
numpy.zeros方法
- 与numpy.full方法类似,只是填充的是0.
注意:zeros与empty不同的是,zeors会初始化数组中的值为0,empty不会做初始化,需要手动去初始化,性能可能会稍微有点提升,这点是它们的区别,但它们的作用相同的.
>>> w = np.zeros((2,),dtype=[('x','i4'),('y','i4')])
>>> w
array([(0, 0), (0, 0)], dtype=[('x', '<i4'), ('y', '<i4')]) #自定义类型
'''
这里的dtype的作用:给array中初始化值指定名字和数据类型。每一项初始化值的第一项被指定为'x',第二项被指定为'y'。
分别使用名字索引访问x中的元素:
print(x['x']) # 输出 [1 0]
print(x['y']) # 输出 [1000 1111]
还可以通过'x'修改x中的值
x['x'] = np.array([2000, 2222])
print(x) # 输出 [(2000, 1000) (2222, 1111)]
'<i4'表示具体的数据类型'little-endian 32-bit signed integer'
'''
numpy.zeros_like方法
- 将numpy.zeros_like(array)中的数组array转换为0,如果是浮点数转换成0,输出新的array不改变原来array
- dtype : 数据类型, 可选覆盖结果的数据类型。order : {‘C’, ‘F’, ‘A’, or ‘K’}, 可选覆盖结果的内存布局。 'C’表示C顺序,‘F’表示F顺序,‘A’表示如果a是Fortran连续,则表示’F’,否则’C’。 'K’表示尽可能匹配a的布局。
>>> np.zeros_like(h,subok=False)
array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0]])
>>> h
array([[ 0, 1, 2, 3, 4, 5, 6, 7],
[ 8, 9, 10, 11, 12, 13, 14, 15]])
>>> np.zeros_like(h,subok=True)
array([[0, 0, 0, 0, 0, 0,