08_Numpy初始化生成相同元素值的ndarray数组

08_Numpy初始化生成相同元素值的ndarray数组

生成相同元素值数组的方法如下:
通过形状shape(行数,列数)的指定,和带类型参数dtype的方法。

  • numpy.zeros(): 初始值为0
  • numpy.ones(): 初始值为1
  • numpy.full(): 任意值的初始化

如何生成与现有数组相同(指的是形状shape,类型dtype相同)的数组。

  • numpy.zeros_like(): 初始值为0
  • numpy.ones_like(): 初始值为1
  • numpy.full_like(): 任意值的初始化

接下来,对各个方法进行介绍。

numpy.zeros(): 初始值为0

使用numpy.zeros()函数可以生成一个ndarray数组,其中所有元素值均为0。
将要生成的数组的形状作为参数传递。(参数为标量时为一维数组,元组时为多维数组)。

import numpy as np

print(np.zeros(3))
# [ 0.  0.  0.]

print(np.zeros((2, 3)))
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]

默认的类型(dtype)是float64。使用参数dtype可以对类型进行指定。

print(np.zeros(3).dtype)
# float64

print(np.zeros(3, dtype=np.int))
# [0 0 0]

print(np.zeros(3, dtype=np.int).dtype)
# int64

numpy.ones(): 初始值为1

使用numpy.ones()函数可以生成一个ndarray数组,其中所有元素值均为1。使用方法与numpy.zeros()相同。将要生成的数组的形状左右参数传递。

print(np.ones(3))
# [ 1.  1.  1.]

print(np.ones((2, 3)))
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]

默认的类型(dtype)是float64。使用参数dtype可以对类型进行指定。

print(np.ones(3).dtype)
# float64

print(np.ones(3, dtype=np.int))
# [1 1 1]

print(np.ones(3, dtype=np.int).dtype)
# int64

numpy.full(): 任意值的初始化

使用numpy.full()函数可以生成一个ndarray数组,其中所有元素值可以为任意值。
将要生成数组的形状作为第一参数传递,并将任意值作为第二个参数(fill_value)进行传递。

print(np.full(3, 100))
# [100 100 100]

print(np.full(3, np.pi))
# [ 3.14159265  3.14159265  3.14159265]

print(np.full((2, 3), 100))
# [[100 100 100]
#  [100 100 100]]

print(np.full((2, 3), np.pi))
# [[ 3.14159265  3.14159265  3.14159265]
#  [ 3.14159265  3.14159265  3.14159265]]

值的类型可以根据第二个参数(fill_value)的值进行指定。

比如100为int64,100.0为float64。

print(np.full(3, 100).dtype)
# int64

print(np.full(3, 100.0).dtype)
# float64

print(np.full(3, np.pi).dtype)
# float64

当然也可以使用参数dtype进行类型指定,并且还可以进行类型的强制转换。

print(np.full(3, 100, dtype=float))
# [ 100.  100.  100.]

print(np.full(3, np.pi, dtype=int))
# [3 3 3]

numpy.zeros_like(): 初始值为0

先生成2个原始ndarray数组,一个类型为int,另外一个类型为float。

import numpy as np

a_int = np.arange(6).reshape((2,3))
print(a_int)
# [[0 1 2]
#  [3 4 5]]

a_float = np.arange(6).reshape((2,3)) / 10
print(a_float)
# [[ 0.   0.1  0.2]
#  [ 0.3  0.4  0.5]]

要生成全为0的数组时,可以使用numpy.zeros_like(),第一参数为原始数组。
新生成数组的类型和原始数组相同。

print(np.zeros_like(a_int))
# [[0 0 0]
#  [0 0 0]]

print(np.zeros_like(a_float))
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]

也可以使用参数dtype进行类型的重新指定。

print(np.zeros_like(a_int, dtype=np.float))
# [[ 0.  0.  0.]
#  [ 0.  0.  0.]]

numpy.ones_like(): 初始值为1

要生成全为1的数组时,可以使用numpy.ones_like()函数。使用方法与numpy.zeros_like()相同。第一个参数为原始数组。
新生成数组的类型和原始数组相同。

print(np.ones_like(a_int))
# [[1 1 1]
#  [1 1 1]]

print(np.ones_like(a_float))
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]

也可以使用参数dtype进行类型的重新指定。

print(np.ones_like(a_int, dtype=np.float))
# [[ 1.  1.  1.]
#  [ 1.  1.  1.]]

numpy.full_like(): 任意值的初始化

生成一个ndarray数组,其中元素的值可以为任意值。
将要生成数组的形状作为第一参数传递,并将任意值作为第二个参数(fill_value)进行传递。
新生成数组的类型和原始数组相同。

print(np.full_like(a_int, 100))
# [[100 100 100]
#  [100 100 100]]

print(np.full_like(a_float, 100))
# [[ 100.  100.  100.]
#  [ 100.  100.  100.]]

值的类型可以进行强制转换。

print(np.full_like(a_int, 0.123))
# [[0 0 0]
#  [0 0 0]]

print(np.full_like(a_float, 0.123))
# [[ 0.123  0.123  0.123]
#  [ 0.123  0.123  0.123]]

也可以使用参数dtype进行类型的重新指定。

print(np.full_like(a_int, 0.123, dtype=np.float))
# [[ 0.123  0.123  0.123]
#  [ 0.123  0.123  0.123]]
  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值