目录
1.2 NumPy的array函数是创建一个数组,格式为array(object,dtype,ndmin)
1.用得到的参数说明
1.1 数组的属性及其说明
1. ndim:这个属性告诉我们数组是几维的,例如一维数组或二维数组等。
2. shape:此属性表示数组的形状,如3×3数组或其他维度的数组。它通常是一个包含各维度大小的元组。
3. size:这个属性包含数组中的元素总数,相当于`.shape`中所有维度值的乘积。
4. dtype:此属性显示数组元素的数据类型。如果需要转换数组元素的数据类型,应使用`astype`方法而不是直接修改`dtype`属性。
5. itemsize:这个属性表示数组中每个元素所占的字节数。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/daigualu/article/details/138556117
1.2 NumPy的array函数是创建一个数组,格式为array(object,dtype,ndmin)
object是指想要创建的数组,即数据源
dtype即data-type,可通过该属性来定义创建的数组的数据类型
ndmin接收的值只能是int值,可以指定生成的数组应该具有的最小维数(注:生成的数组的行列积必须与源数据的元素个数相等)
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Desert_guest/article/details/110739059
1.3 arange函数的常用参数及其说明
start
(可选):数列的起始值,默认为 0。stop
:数列的终止值,不包括在结果中。step
(可选):数列的步长,默认为 1。dtype
(可选):返回数组的数据类型,如果不指定,将根据输入参数自动确定数据类型。
1.4 linspace函数的常用参数及其说明
start
start 参数数值范围的起始点。如果设置为0,则结果的第一个数为0.该参数必须提供。
stop
stop 参数数值范围的终止点。通常其为结果的最后一个值,但如果修改endpoint = False, 则结果中不包括该值(后面示例会说明)。
num (可选)
num 参数控制结果中共有多少个元素。如果num=5,则输出数组个数为5.该参数可选,缺省为50.
endpoint (可选)
endpoint 参数决定终止值(stop参数指定)是否被包含在结果数组中。如果 endpoint = True, 结果中包括终止值,反之不包括。缺省为True。
dtype (可选)
和其他的 NumPy 一样, np.linspace中的dtype 参数决定输出数组的数据类型。如果不指定,python基于其他参数值推断数据类型。如果需要可以显示指定,参数值为NumPy 和 Python支持的任意数据类型。
我们并不需要每次都使用所有参数,如果缺省值可以满足我们需求。一般start, stop, num 比 endpoint 和 dtype常用。
1.5 NumPy的基本数据类型及其取值范围
-
整数类型:
int8
或i1
:8位有符号整数,取值范围从 -128 到 127。int16
或i2
:16位有符号整数,取值范围从 -32,768 到 32,767。int32
或i4
:32位有符号整数,取值范围从 -2,147,483,648 到 2,147,483,647。int64
或i8
:64位有符号整数,取值范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。- 对应的无符号整数类型(如
uint8
、uint16
、uint32
、uint64
)也有相似的取值范围,但是是无符号的,即只包含正数和零。
-
浮点数类型:
float16
或f2
:半精度浮点数,取值范围取决于实现和具体的平台,但通常约为 6.55e-5 到 6.55e4,并带有 3 到 4 位的十进制精度。float32
或f4
或float
:单精度浮点数,取值范围约为 1.2e-43 到 3.4e+38,并带有 7 位的十进制精度。float64
或f8
或double
:双精度浮点数,取值范围约为 2.2e-308 到 1.8e+308,并带有 15 位的十进制精度。float128
或f16
(在某些平台或版本上可能不可用):四精度浮点数,提供更高的精度和范围。
-
复数类型:
complex64
:由两个32位浮点数(实部和虚部)表示的复数。complex128
或complex
:由两个64位浮点数(实部和虚部)表示的复数。complex256
(在某些平台或版本上可能不可用):由两个128位浮点数(实部和虚部)表示的复数。
-
布尔类型:
bool
:布尔值,True 或 False。在NumPy数组中,这通常表示为8位整数,其中0表示False,非零值表示True。
-
其他数据类型:
object
:任何Python对象。string_
或S
:固定长度的字符串。例如,dtype('S10')
表示长度为10的字符串。unicode_
或U
:固定长度的Unicode字符串。例如,dtype('U10')
表示长度为10的Unicode字符串。- 自定义的数据类型,如结构体(struct)等。
2. 创建数组并查看数组属性
arr1 = np.array([1, 2, 3, 4]) #创建一组数组
print('创建的数组为:', arr1)
创建的数组为: [1 2 3 4]
#创建二维数组
arr2 = np.array([[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]])
print('创建的数组为:\n', arr2)
创建的数组为: [[ 1 2 3 4] [ 4 5 6 7] [ 7 8 9 10]]
print('数组形状为:', arr2.shape) #查看数组元素类型
数组形状为: (3, 4)
print('数组元素类型为:', arr2.dtype) #查看数组元素类型
数组元素类型为: int32
print('数组元素个数为:', arr2.size) #查看数组元素个数
数组元素个数为: 12
print('数组每个元素存储空间为:', arr2.itemsize) #查看数组每个元素存储空间
数组每个元素存储空间为: 4
3. 重新设置数组的shape属性
arr2.shape = 4, 3 #重新设置shape
print('重新设置shape后的arr2为:\n', arr2)
重新设置shape后的arr2为: [[ 1 2 3] [ 4 4 5] [ 6 7 7] [ 8 9 10]]
4. arange函数的常用参数及其说明
print('使用arange函数创建的数组为:\n', np.arange(0, 1, 0.1))
使用arange函数创建的数组为: [0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
5. linspace函数的常用参数及其说明
print('使用linspace函数创建的数组为:\n', np.linspace(0, 1, 12))
使用linspace函数创建的数组为: [0. 0.09090909 0.18181818 0.27272727 0.36363636 0.45454545 0.54545455 0.63636364 0.72727273 0.81818182 0.90909091 1. ]
6. 使用logspace函数创建等比数列
print('使用linspace函数创建的等比数列为:\n', np.linspace(0, 2, 20))
使用linspace函数创建的等比数列为: [0. 0.10526316 0.21052632 0.31578947 0.42105263 0.52631579 0.63157895 0.73684211 0.84210526 0.94736842 1.05263158 1.15789474 1.26315789 1.36842105 1.47368421 1.57894737 1.68421053 1.78947368 1.89473684 2. ]
7.使用zeros函数创建数组
print('使用zeros函数创建的数组为:\n', np.zeros((2, 3)))
使用zeros函数创建的数组为: [[0. 0. 0.] [0. 0. 0.]]
8. 使用eye函数创建数组
print('使用eye函数创建的数组为:\n', np.eye(3))
使用eye函数创建的数组为:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
9. 使用diag函数创建数组
print('使用diag函数创建的数组为:\n', np.diag([1, 2, 3, 4]))
使用diag函数创建的数组为: [[1 0 0 0] [0 2 0 0] [0 0 3 0] [0 0 0 4]]
10.使用diag函数创建数组
print('使用ones函数创建的数组为:\n', np.ones((5, 3)))
使用ones函数创建的数组为: [[1. 1. 1.] [1. 1. 1.] [1. 1. 1.] [1. 1. 1.] [1. 1. 1.]]
11. 数组的数据类型转换
print('转换结果为:', np.float64(42)) #整数转换为浮点数
转换结果为: 42.0
print('转换结果为:', np.int8(42.0)) #浮点数转换为整数
转换结果为: 42
print('转换结果为:', np.bool(42)) #整数转换为布尔值
转换结果为:True
print('转换结果为:', np.bool(0)) #整数转换为布尔值
转换结果为:False
print('转换结果为:', np.float(True)) #布尔值转换为浮点数
转换结果为:1.0
print('转换结果为:', np.float(False)) #布尔值转换为浮点数
转换结果为:0.0
12. 创建数据类型
df = np.dtype([('name', np.str_, 40), ('numitems', np.int64),
('price', np.float64)])
print('数据类型为:\n', df)
数据类型为: [('name', '<U40'), ('numitems', '<i8'), ('price', '<f8')]
13.查看数据类型
print('数据类型为:', df['name'])
数据类型为: <U40
print('数据类型为:', np.dtype(df['name']))
数据类型为: <U40
14.自定义数组类型
itemz = np.array([('tomatoes', 42, 4.14), ('cabbages', 13, 1.72)],
dtype=df)
print('自定义数据为:', itemz)
自定义数据为: [('tomatoes', 42, 4.14) ('cabbages', 13, 1.72)]