00:00
©️北京理工嵩天
Note:Numpy是一个开源的python科学计算的基础库。下面分享ndarray创建数组的方式
1、从Python中的列表(list)、元组(tuple)或列表与元组混合类型进行ndarray数组创建
example:a=np.array(list/tuple,dtype=np.float32)
(ps:列表、数组都是表示一组数据的有序结构的数据类型,但是列表内元素数据类型可以不同;但是数组内的元素必须数据类型相同。a = np.array([2,3,4])
// 打印结果:
[2 3 4]
b = np.array((2,3,5))
// 打印结果:
[2 3 5]
如果打印其类型则为 int64 (ps:我使用的计算机为64位计算机,未指定数据类型则根据数据情况关联一种数据类型),另外需要注意的是 生成的ndarray内的基础数据元素之间由空格隔开。轴(axis)用来保存数据的纬度,秩(rank)用来表示轴的数量。在上边案例中,每个轴上有3个纬度,每个秩上有2个纬度。a = np.array([(0, 4, 2, 3),[1, 2, 3., 4], (3, 2, 1, 5)])
print(a)
print(a.ndim, a.shape, a.size, a.dtype, a.itemsize)
//打印结果:
[[0. 4. 2. 3.]
[1. 2. 3. 4.]
[3. 2. 1. 5.]]
// 打印如下五个属性
2 (3, 4) 12 float64 8
打印结果为64位浮点型数据类型,在axis 2轴([1, 2, 3., 4]),第三个元素为:“3.”浮点型数据类型。属性见:数组属性
2、使用NumPy函数创建,比如:可以使用arange函数、ones函数、zeros函数
b=np.ones((2,3))
c=np.zeros((4,2))
d=np.full((3,4),7)
e=np.eye(3)
PS:ones 、zeros、 full函数内 shape 注意 别写成[],当然我测试中 并未报错,不过养成习惯吧,针对 shape 中括号 还是 圆括号 可以在评论区讨论。
输出结果如下[0 1 2 3 4]
[[1. 1. 1.]
[1. 1. 1.]]
[[0. 0.]
[0. 0.]
[0. 0.]
[0. 0.]]
[[7 7 7 7]
[7 7 7 7]
[7 7 7 7]]
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
观察发现:ones zeros eye 三个函数生成的多纬数组中元素类型为 浮点型
再测试一个多维度的比如shape 为(2,3,4)吧a = np.ones((2,3,4))
print(a)
打印结果如下:[[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]
另外还有一种创建类型 在大规模数据运算中常用到的
比如给定数组a:[[1, 2, 3, 4],[2, 3, 4, 5]]a = np.ones_like([[1, 2, 3, 4],[2, 3, 4, 5]])
print(a)
打印出ndarray多纬数组类型的结果如下:[[1 1 1 1]
[1 1 1 1]]
print(a)
打印结果如下:
[ 1. 4. 7. 10.]
需要注意 不指定数据类型 生成定默认为浮点型数据类型
将上述a数组与[2,3,4]数组合并为b数组
b=np.concatenate((a,[2,3,4]))
print(b)
结果如下:
[ 1. 4. 7. 10. 2. 3. 4.]
3、使用字节流创建ndarray创建n维数组
4、从文件读取数据创建n纬数组