Python numpy 创建数组 ndarray 方式


NumPy 创建数组的方式

一、基本创建方式。
	1. 基于 list 的 ndarray 创建
	2. 基于元组 tuple 的 ndarray 创建
	3. 基于迭代器的 ndarray 创建
二、Numpy原生函数创建。
	1. zeros 创建一个用指定形状用0填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列
	2. ones  创建一个用指定形状用1填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列
	3. eye 	 创建一个用指定形状用0填充的数组,且对角线全为1的矩阵。
	4. diag  创建对角线数组。
	5. arange  在给定间隔内返回均匀间隔的值。值在半开区间 [开始,停止)内生成
	6. linspace  创建等差数列
	7. logspace  创建等比数列
三、读取文件创建数组 
四、ndarray的重要属性


一、基本创建方式。

1. 基于 list 的 ndarray 创建。
import numpy as np

# 创建一维数组
arr1 = np.array([1,2,3,4])
# 创建二维数组
arr1 = np.array([[1,2,3,4], [1,2,3,4]])

2. 基于元组 tuple 的 ndarray 转化。
import numpy as np

arr2 = np.array((1,2,3,4))

3. 基于 迭代器 的 ndarray 创建。
import numpy as np

np.array(range(3,8))
np.array(range(3,8), dtype='float')



二、Numpy原生函数创建。

1. zeros 创建一个用指定形状用0填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列。

在这里插入图片描述

import numpy as np

arr4 = np.zeros((2,3))
arr4 
# out 
# array([[0., 0., 0.],
#       [0., 0., 0.]])

2. ones 创建一个用指定形状用1填充的数组。默认的dtype是float64。其中shape可以是个整数或者一个序列

在这里插入图片描述

import numpy as np
arr4 = np.ones((2,3))
arr4, type(arr4)
# out
# (array([[1., 1., 1.],
#         [1., 1., 1.]]),
#  numpy.ndarray)

3. eye 对角线为 1, 其余全为 0 的矩阵。

在这里插入图片描述

import numpy as np

arr4 = np.eye(4)

4. diag 提取或构建对角线数组。

在这里插入图片描述

import numpy as np

arr4 = np.diag([2,3,4,5])
arr4
# out
# (array([[2, 0, 0, 0],
#        [0, 3, 0, 0],
#        [0, 0, 4, 0],
#        [0, 0, 0, 5]]),

5. arange 在给定间隔内返回均匀间隔的值。值在半开区间 [开始,停止)内生成(换句话说,包括开始但不包括停止的区间),返回的是 ndarray 。关于 np.arange 详细参数详解,请参考

在这里插入图片描述

import numpy as np

arr5 = np.arange(0, 10, 1)
arr5, type(arr5)
# out
# (array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), numpy.ndarray)


# 指定数据类型
arr6 = np.arange(10, dtype=np.int)
arr6, type(arr6)
# out 
# (array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]), numpy.ndarray)

6. linspace 创建等差数列。

在这里插入图片描述

import numpy as np

arr7 = np.linspace(0, 10, 5)
# out
# (array([ 0. ,  2.5,  5. ,  7.5, 10. ]), numpy.ndarray)

7. logspace 创建等比数列。start 和 stop 表示的是多少次方。

在这里插入图片描述

import numpy as np

arr8 = np.logspace(1, 10, 10)
arr8, type(arr8)
# out
# (array([1.e+01, 1.e+02, 1.e+03, 1.e+04, 1.e+05, 1.e+06, 1.e+07, 1.e+08, 1.e+09, 1.e+10]),numpy.ndarray)


arr8 = np.logspace(1, 9, 9, base=2) # 生成以2为底的等比数列



三. 读取文件创建数组

默认采用空白作为分隔符,将文件中的内容读取进来,并生成矩阵,要求每行的内容数目必须一致,也就是说不能有缺失值。由于numpy矩阵中都是同一类型的元素,所以函数会自动将文件中的内容转换为同一类型。

import numpy as np

arr9 = np.loadtxt(r'./numpy_read.txt', delimiter='\t')
arr9, type(arr9), arr9.shape
# 跳过前几行
np.loadtxt(r'./numpy_read.txt', skiprows=3)
# 选择指定的列
np.loadtxt(r'./numpy_read.txt', skiprows=3, usecols=(1,2,3))
# 按列返回矩阵按列返回矩阵
arr10 = np.loadtxt(r'./numpy_read.txt', unpack=True)
arr10, type(arr10), arr10.shape

除此之外还有一个函数也可以用来读取文件,那就是genfromtxt()函数,它用法和loadtxt类似,但是会有更丰富的功能,大家可以把他理解为loadtxt()的升级版。




四、ndarray的重要属性

import numpy as np

arr = np.array([[1,2,3], [7,8,9]], dtype=float)
arr
# dtype属性:返回ndarray数组的数据类型,数据类型的种类
arr.dtype
# ndim属性:返回数组维度的数量
arr.ndim
# shape属性:返回数组对象的尺度,对于矩阵,即n行m列,shape是一个元组(tuple)
arr.shape
# size属性:返回用来保存元素的数量,相当于shape中n×m的值
arr.size
# T属性:返回数组转置
arr.T

猜你喜欢

转载自blog.csdn.net/qq_35240689/article/details/126959685