02 numpy ndarray

目录

 

一、介绍

二、创建ndarray

三、ndarray 的类型 dtype

四、ndarray 写入文件


一、介绍

ndarray 是numpy的核心,ndarray是一个多维数组的数据结构,而且这个多维数组的结构可以根据需要改变形状,形状指的是多维数组的列和行。同一个ndarray里的数据类型相同。

二、创建ndarray

#导入numpy
import numpy as np

#使用np.array创建ndarray
arr = np.array([1, 2, 3, 4, 5])

print('arr={}'.format(arr))

#打印arr的类型
print('arr的type为:{}'.format(type(arr)))
#获取arr的形状
print('arr的形状为:{}'.format(arr.shape))
#获取arr里面存的数据的类型
print('arr里存的数据类型为:{}'.format(arr.dtype))

运行结果:

arr=[1 2 3 4 5]
arr的type为:<class 'numpy.ndarray'>
arr的形状为:(5,)
arr里存的数据类型为:int64

arr.shape 返回 ndarray的形状,(5,)表示arr为1维数组,有5行。一般我们将1维数组称为(读:zhi)为1的数组。N维数组的秩为N。

arr.dtype 返回arr存储的数据类型。参考:https://docs.scipy.org/doc/numpy-1.13.0/user/basics.types.html


创建秩为2的数组,即2维数组

#导入numpy
import numpy as np

#使用np.array创建ndarray
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12],[13, 14, 15]])

print(arr)
print('arr.shape={}'.format(arr.shape))

运行结果:可以看到arr.shape 返回(5, 3) 表示arr为2为数组。表示 5行3列的二维数组。


arr=[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]
 [13 14 15]]
arr.shape=(5, 3)

 

下面创建一个秩为3的,即三维数组:

import numpy as np

arr = np.array([[[1, 2], [3, 4], [5, 6]], [[7, 8], [9, 10], [11, 12]], [[13, 14], [15, 16], [17, 18]],[[19, 20],[21, 22],[23, 24]]])

print('arr={}'.format(arr))
print('arr.shape={}'.format(arr.shape))

运行结果:第一维度为4,第二个维度为3,第三个维度为2

arr=[[[ 1  2]
  [ 3  4]
  [ 5  6]]

 [[ 7  8]
  [ 9 10]
  [11 12]]

 [[13 14]
  [15 16]
  [17 18]]

 [[19 20]
  [21 22]
  [23 24]]]
arr.shape=(4, 3, 2)

 

三、ndarray 的类型 dtype

ndarray 无法存储不同的数据类型,如果将int 和 string 存到一个ndarray, numpy会将int转换为string。如下:

#导入numpy
import numpy as np

#使用np.array创建ndarray
arr = np.array([1, 'hello'])

print('arr={}'.format(arr))
#获取arr里面存的数据的类型
print('arr里存的数据类型为:{}'.format(arr.dtype))

运行结果(U21 表示长度为21的unicode):

arr=['1' 'hello']
arr里存的数据类型为:<U21

numpy会自动选择存储的类型即dtype。如果将不同类型的元素存到同一个ndarray中,numpy会向上转型为同一个类型。如同时有int 和 string 的时会统一转换为string,同时有int 和 float 时会统一转换为float。 

虽然 NumPy 自动为 ndarray 选择 dtype,但是 NumPy 也允许你指定要为 ndarray 的元素分配的特定 dtype。在 np.array() 函数中创建 ndarray 时,可以使用关键字 dtype 指定 dtype。我们来看一个示例:

import numpy as np

arr = np.array([1.5, 2.2, 3.7, 4.0, 5.9], dtype = np.int64)

print('arr = {}'.format(arr))
print('arr.type={}'.format(arr.dtype))

运行结果:虽然存入的元素为float类型,但是因为我们指定了arr的type为int,所以会将float转换为int存储。

arr = [1 2 3 4 5]
arr.type=int64

四、ndarray 写入文件

创建 ndarray 后,我们可以将其保存到文件中,以便以后读取该文件或供另一个程序使用。NumPy 提供了一种将数组保存到文件中以供日后使用的方式。

import numpy as np

arr = np.array([1.5, 2.2, 3.7, 4.0, 5.9], dtype = np.int64)

#使用save将arr保存到my_array的文件。numpy会自动追加拓展名为:.npy。
#可以指定路径如:/opt/my_array。会将文件保存到opt目录下
np.save('my_array', arr)

#使用load方法读取
arr_from_file = np.load('my_array.npy')
print('arr_from_file={}'.format(arr_from_file))

运行结果:

arr_from_file=[1 2 3 4 5]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值