np.array和np.ndarry 互相转换
时间: 2024-07-21 08:01:01 浏览: 66
在NumPy库中,`np.array` 和 `np.ndarray` 都是用来创建数组的数据结构。`np.array` 是一个函数,它能接受各种类型的输入(列表、元组、标量等),并将其转换成一个NumPy数组。这个过程相对简单,通常用于数据的快速转换。
而 `np.ndarray` 是NumPy数组类的实例,它是底层数据结构,可以直接操作存储的数值数据,包括维度、形状、类型等属性。当我们直接提到 `np.ndarry` 这个术语时,通常是在说 `numpy.ndarray` 类型的对象。
两者之间的转换通常是自动的。例如,如果你有一个Python列表,可以使用 `np.array(list)` 转换为数组。同样地,如果你已经得到了一个 `np.ndarray` 对象,不需要额外操作就可以认为它是一个 `array`。
相关问题
np.array和np.ndarry 的区别
np.array和np.ndarray都是NumPy库中用于创建数组的函数,它们之间有以下区别[^1][^2]:
1. np.array是一个函数,用于将输入数据(例如列表、元组、数组等)转换为数组。而np.ndarray是一个类,用于创建多维数组对象。
2. np.array返回的是一个数组对象,而np.ndarray返回的是一个多维数组对象。
3. np.array可以接受多种类型的输入数据,并根据输入数据的类型自动推断数组的数据类型。而np.ndarray需要显式指定数组的数据类型。
4. np.array可以通过修改输入数据的形状来创建新的数组,而np.ndarray则需要使用reshape()函数来改变数组的形状。
5. np.array创建的数组是一个副本,对原始数据的修改不会影响到数组本身。而np.ndarray创建的数组是对原始数据的引用,对原始数据的修改会影响到数组本身。
下面是一个示例代码,演示了np.array和np.ndarray的区别[^1][^2]:
```python
import numpy as np
# 使用np.array创建数组
arr1 = np.array([1, 2, 3, 4, 5])
print(type(arr1)) # 输出:<class 'numpy.ndarray'>
print(arr1) # 输出:[1 2 3 4 5]
# 使用np.ndarray创建数组
arr2 = np.ndarray([1, 2, 3, 4, 5])
print(type(arr2)) # 输出:<class 'numpy.ndarray'>
print(arr2) # 输出:[1 2 3 4 5]
# 修改原始数据
arr1[0] = 10
print(arr1) # 输出:[10 2 3 4 5]
arr2[0] = 10
print(arr2) # 输出:[10. 2. 3. 4. 5.]
```
np.array与np.ndarry
np.array()和np.ndarray()都是用于创建NumPy数组的函数,但它们有一些细微的区别。
首先,np.array()是一个函数,用于将输入转换为NumPy数组。它可以接受任何序列型的输入,包括元组、列表和数组。np.array()还可以指定创建的数组的数据类型,默认情况下根据输入的数据类型进行推断。简单示例中的arr01和arr02都是通过np.array()函数创建的,其中arr01的数据类型是int32,arr02的数据类型是float64。
而np.ndarray()是一个类,用于创建NumPy数组对象。与np.array()不同,np.ndarray()需要提供一个shape参数来指定数组的形状,还可以指定数据类型。np.ndarray()还可以通过dtype参数指定数组的数据类型。
另外,np.asarray()和np.array()在功能上是相似的,都可以用于创建NumPy数组。但是,np.asarray()函数返回一个输入数组的视图(view),如果输入数组已经是一个NumPy数组,则不会创建新的数组对象。而np.array()函数总是返回一个新的数组对象。
综上所述,np.array()和np.ndarray()都可以用于创建NumPy数组,但它们的用法和功能略有不同。np.array()是一个函数,用于将输入转换为数组,而np.ndarray()是一个类,用于创建数组对象。np.asarray()函数与np.array()函数相似,但返回的是输入数组的视图。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Numpy.array()详解 、np.array与np.asarray辨析、 np.array和np.ndarry的区别](https://blog.csdn.net/sinat_28576553/article/details/89047893)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文