携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情
1. 生成数组的方法
1.1 生成0,1数组
- np.ones(shape, dtype)
- 例如:
ones = np.ones([4, 8])
,即生成四行八列的数组,其中的元素都为1。
- 例如:
- np.ones_like(a, dtype)
- np.zero(shape, dtype)
- np.zeros_like(a, dtype)
- 例如:
np.zeros_like(ones)
,括号内传入你想生成的那个数组ones,就可以生成和ones形状一模一样的,元素都是0的数组。
- 例如:
1.2 从现有数组生成
- 方法1:np.array(object, dtype)
- 方法2:np.asarray(a, dtype)
代码演示如下所示:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
a1 = np.array(a) # 深拷贝
a2 = np.asarray(a) # 浅拷贝
print(a)
print("-"*50)
print(a1)
print("-"*50)
print(a2)
运行结果如下图所示:
注意:以上两种方式生成现有数组有所不同,若修改了原数组的某一个元素,方法1生成的数组对应元素不会改变,但是方法2生成的数组的对应元素也相应修改。
代码演示如下所示:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
a1 = np.array(a) # 深拷贝
a2 = np.asarray(a) # 浅拷贝
a[0, 0] = 666
print(a)
print("-"*50)
print(a1)
print("-"*50)
print(a2)
代码运行结果如下图所示:当原数组第一个元素修改成666以后,a1数组没有发生改变,但是a2数组对应元素也变成了666。
1.3 生成固定范围数组
1.3.1 等差数组(1)-指定数量
np.linspace(start, stop, num, endpoint)
- 创建等差数组-指定数量
- 参数:
- start:序列的起始值
- stop:序列的终止值
- num:要生成的等间隔样例数量,默认为50
- endpoint:序列中是否包含stop值,默认为ture
代码演示:在0-100范围内,生成11个等差元素
import numpy as np
# 生成等间隔数组
a = np.linspace(0, 100, 11)
print(a)
运行结果:
1.3.2 等差数组(2)-指定步长
np.arange(start, stop, step, dtype)
- 创建等差数组-指定步长
- 参数:
- step:步长,默认值为1
a2 = np.arange(10, 50, 2)
print(a2)
1.3.3 等比数列
np.logspace(start, stop, num)
- 创建等比数列
- 参数:
- num:要生成的等比数列数量,默认为50(要生成多少个)
- 注意:该函数是生成10的多少次方
- start:指数起始值
- stop:指数结束值
代码演示:
# 等比数组
a3 = np.logspace(0, 2, 3)
print(a3)
运行结果如下:即生成10的0次方,10的1次方,10的2次方。指数从0到2,总共生成3个数。