np.empty_like使用
时间: 2024-11-16 16:20:18 浏览: 29
`np.empty_like()` 是NumPy库中的一个函数,它用于创建一个新的数组,其形状、大小和数据类型都与给定数组相同,但是填充的是随机的未初始化的数据。这个函数常用于需要相同形状的新数组,但不需要预先填充特定值的情况。
基本语法如下:
```python
new_array = np.empty_like(original_array)
```
这里的 `original_array` 是你要复制其形状和类型的数组。新创建的 `new_array` 将不会有任何已知的值,适合于需要动态生成空数组并后续自定义赋值的情况。
例如,假设我们有一个二维数组 `matrix`:
```python
matrix = np.array([[1, 2], [3, 4]])
empty_matrix = np.empty_like(matrix)
```
`empty_matrix` 就是一个和 `matrix` 一样大小和类型的零填充矩阵,即:
```python
print(empty_matrix)
# 输出可能是类似这样的随机值:[[9.58693731e+00 4.43449660e-32]
# [4.86781511e-32 3.98255965e+00]]
```
相关问题
np.empty_like函数
`np.empty_like` 函数是 NumPy 库中的一个函数,用于创建一个与给定数组具有相同形状和数据类型的空数组。
使用方法如下:
```python
np.empty_like(arr, dtype=None, order='K', subok=True)
```
参数说明:
- `arr`:给定的数组,用于确定新数组的形状和数据类型。
- `dtype`:可选参数,指定新数组的数据类型。如果不提供,则默认为与 `arr` 相同的数据类型。
- `order`:可选参数,指定新数组中元素的存储顺序,可以为 'C'(按行存储)或 'F'(按列存储)。
- `subok`:可选参数,如果为 True,则返回与 `arr` 具有相同子类的数组。
示例:
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
empty_arr = np.empty_like(arr)
print(empty_arr)
# 输出:
# [[0 0 0]
# [0 0 0]]
```
在上面的示例中,`empty_arr` 是一个与 `arr` 具有相同形状和数据类型的空数组。注意,由于 `empty_arr` 是新创建的数组,因此其初始值是未定义的,可能是任意值。
绘制训练集和测试集的真实值和预测值图像 train_predict_plot = np.empty_like(data_scaled) train_predict_plot[:, :] = np.nan train_predict_plot[time_steps:len(train_predict) + time_steps, :] = train_predict test_predict_plot = np.empty_like(data_scaled) test_predict_plot[:, :] = np.nan test_predict_plot[len(train_predict) + time_steps * 2 + 1:len(data_scaled) - 1, :] = test_predict plt.figure(figsize=(10, 6)) plt.plot(scaler.inverse_transform(data_scaled)) plt.plot(train_predict_plot) plt.plot(test_predict_plot) plt.legend(['True', 'Train Predict', 'Test Predict']) plt.xlabel('Time/h') plt.ylabel('kwh') plt.show(改写以上代码,使得训练集部分和测试集部分分别绘制在两张图上
下面是改写后的代码,将训练集和测试集的真实值和预测值分别绘制在两张图上:
```
train_predict_plot = np.empty_like(data_scaled)
train_predict_plot[:, :] = np.nan
train_predict_plot[time_steps:len(train_predict) + time_steps, :] = train_predict
test_predict_plot = np.empty_like(data_scaled)
test_predict_plot[:, :] = np.nan
test_predict_plot[len(train_predict) + time_steps * 2 + 1:len(data_scaled) - 1, :] = test_predict
# 绘制训练集部分真实值和预测值图像
plt.figure(figsize=(10, 6))
plt.plot(scaler.inverse_transform(data_scaled[:len(train_predict)]))
plt.plot(train_predict_plot[:len(train_predict)])
plt.legend(['True', 'Train Predict'])
plt.xlabel('Time/h')
plt.ylabel('kwh')
plt.title('Training Set')
plt.show()
# 绘制测试集部分真实值和预测值图像
plt.figure(figsize=(10, 6))
plt.plot(scaler.inverse_transform(data_scaled[len(train_predict) + time_steps * 2 + 1:]))
plt.plot(test_predict_plot[len(train_predict) + time_steps * 2 + 1:])
plt.legend(['True', 'Test Predict'])
plt.xlabel('Time/h')
plt.ylabel('kwh')
plt.title('Test Set')
plt.show()
```
阅读全文