在NumPy中返回一个与给定数组形状和类型相同,并更改顺序为K样式的新数组


要返回一个与给定数组形状和类型相同的新数组,请在Python NumPy中使用**numpy.empty_like()**方法。它返回一个未初始化(任意)数据的数组,其形状和类型与原型相同。这里的第一个参数是原型(类似数组)的形状和数据类型,它们定义了返回数组的这些相同属性。我们使用“**order**”参数将顺序设置为'K'样式。'K'表示尽可能紧密地匹配原型的布局。

order参数会覆盖结果的内存布局。'C'表示C顺序,'F'表示Fortran顺序,'A'表示如果原型是Fortran连续的则为'F',否则为'C'。'K'表示尽可能紧密地匹配原型的布局。shape参数会覆盖结果的形状。如果order='K'并且维数不变,则会尝试保持顺序,否则,则隐含order='C'。overrides参数会覆盖结果的数据类型。

如果subok参数为True,则新创建的数组将使用原型的子类类型,否则它将是基类数组。默认为True。

步骤

首先,导入所需的库:

import numpy as np

使用array()方法创建一个NumPy三维数组。我们添加了int类型的元素:

arr = np.array([ [[5,10],[15,20]],[[25,30],[35,40]],[[50,60],[70,80]]])

显示数组:

print("Array...
",arr)

获取数组的类型:

print("
Array type...
", arr.dtype)

获取数组的维度:

print("
Array Dimensions...
", arr.ndim)

要返回一个与给定数组形状和类型相同的新数组,请在Python NumPy中使用numpy.empty_like()方法。返回一个未初始化(任意)数据的数组,其形状和类型与原型相同。我们使用“order”参数将顺序设置为'K'样式:

newArr = np.empty_like(arr, order = 'K')
print("
New Array..
", newArr)

获取新数组的类型:

print("
New Array type...
", newArr.dtype)

获取新数组的维度:

print("
New Array Dimensions...
", newArr.ndim)

示例

import numpy as np

# Creating a numpy Three-Dimensional array using the array() method
# We have added elements of int type
arr = np.array([[[5,10],[15,20]],[[25,30],[35,40]],[[50,60],[70,80]]])

# Display the array
print("Array...
",arr) # Get the type of the array print("
Array type...
", arr.dtype) # Get the dimensions of the Array print("
Array Dimensions...
", arr.ndim) # To return a new array with the same shape and type as a given array, use the numpy.empty_like() method in Python Numpy # It returns the array of uninitialized (arbitrary) data with the same shape and type as prototype. # The 1st parameter here is the shape and data-type of prototype(array-like) that define these same attributes of the returned array. # We have set the order to 'K' style using the "order" parameter. # ‘K’ means match the layout of prototype as closely as possible. newArr = np.empty_like(arr, order = 'K') print("
New Array..
", newArr) # Get the type of the new array print("
New Array type...
", newArr.dtype) # Get the dimensions of the new array print("
New Array Dimensions...
", newArr.ndim)

输出

Array...
[[[ 5 10]
[15 20]]

[[25 30]
[35 40]]

[[50 60]
[70 80]]]

Array type...
int64

Array Dimensions...
3

New Array..
[[[ 0 0]
[ 0 0]]

[[140451415756208 140451415756144]
[140451415756272 140451415626672]]

[[140451415626864 140451415626928]
[140451415626992 140451415627568]]]

New Array type...
int64

New Array Dimensions...
3

更新于:2022年2月8日

97 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告